栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java

一、多对一的关联操作 注:本例创建的是classRoom和Stuent表,student代表多的一方,classRoom代表一的一方。

步骤一:在多的一端的实体类中添加一的类型的对象,表示关联关系
如图:
步骤二:
使用标签:声明关联关系映射关系。
resultMap标签中的属性:
id属性:给当前resultMap标签设定一个唯一标识,便于在需要的地方引用。通常是标签的id+resultMap的命名方式
column属性:指定数据库表字段名
property属性:指定Java实体类的属性
如本例:


        
        
        
        

        
        
        
        
            
            
            
            
        
    

最大的用处在于表示关联关系:
使用标签,在association标签内部指定被关联的类型和表字段的对应关系。
标签:映射(对一)关联关系,不管自己是(多的一方)还是(一的一方),要求对方是(一的一方)。
property属性:在当前实体类(Student)类型中,用来建立关联关系的属性名,这里是classRoom属性
javaType属性:被关联的实体类全类名(此题为classRoom)
如本例中的:


        
        
        
            
            
            
            
        

尚硅谷老师完整解析图:

完整步骤:

测试类:

 @Test
    public void ManyToOne() throws Exception{
        //目标:在查询学生信息的同时,将教室信息也查询出来
        InputStream in = Resources.getResourceAsStream("Mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        StudentMapper sutdentmapper = sqlSession.getMapper(StudentMapper.class);
//        执行关联查询
        Student student = sutdentmapper.selectByName("小绿");

//       打印student本身信息
        System.out.println("student="+student);
//        获取关联的classRoom对象
        classRoom cr = student.getClassRoom();
        System.out.println("classRoom="+cr);

        sqlSession.close();
    }

StudentMapper.xml:


    
        
        
        
        

        
        
        
        
            
            
            
            
        
    

        select c.cid, c.class_name, s.sid, s.stu_name, s.stu_age
        from tb_classroom c
                 left join tb_student s on c.cid = s.cid
        where c.cid = #{cid}
    

classRoomMapper.java:

package cn.mapper;

import cn.pojo.classRoom;

public interface classRoomMapper {
    classRoom selectByclassId(int id);
}

三、两张表对应的实体类
classRoom.java(一的一端):

package cn.pojo;

import java.util.List;

public class classRoom {
   private Integer cid;
   private String className;

   //维护一个多的类型,用来建立对多的关联关系
   private List student;

   public List getStudent() {
      return student;
   }

   public void setStudent(List student) {
      this.student = student;
   }

   public classRoom(Integer cid, String className) {
      this.cid = cid;
      this.className = className;
   }

   public classRoom() {
   }

   @Override
   public String toString() {
      return "classRoom{" +
              "c + cid +
              ", className='" + className + ''' +
              '}';
   }

   public Integer getCid() {
      return cid;
   }

   public void setCid(Integer cid) {
      this.cid = cid;
   }

   public String getClassName() {
      return className;
   }

   public void setClassName(String className) {
      this.className = className;
   }
}

Student.java(多的一端):

package cn.pojo;

public class Student {
    private Integer sid;
    private String stuName;
    private Integer stuAge;
    private Integer cid;
//维护关联关系
    private classRoom classRoom;

    public cn.pojo.classRoom getClassRoom() {
        return classRoom;
    }

    public void setClassRoom(cn.pojo.classRoom classRoom) {
        this.classRoom = classRoom;
    }

    public Student() {
    }

    public Student(Integer sid, String stuName, Integer stuAge, Integer cid) {
        this.sid = sid;
        this.stuName = stuName;
        this.stuAge = stuAge;
        this.cid = cid;
    }

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public Integer getStuAge() {
        return stuAge;
    }

    public void setStuAge(Integer stuAge) {
        this.stuAge = stuAge;
    }

    public Integer getCid() {
        return cid;
    }

    public void setCid(Integer cid) {
        this.cid = cid;
    }

    @Override
    public String toString() {
        return "Student{" +
                "s + sid +
                ", stuName='" + stuName + ''' +
                ", stuAge=" + stuAge +
                ", c + cid +
                '}';
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号