mybatis一对多的查询方法详解

因为是用记事本写的,可能排版比较乱,所以先附上一张大图片。
mybatis一对多的查询方法详解_第1张图片

首先,先新建两个实体类Teacher.java和Student.java
public class Teacher {
    private Integer teacherId;
    private String teacherName;
    //getXxx()和setXxx()方法省略
}

public class Student {
    private String studentName;
    private String studentAddr;
    private Integer teacherId;
    //getXxx()和setXxx()方法省略
}
他们的关系是:一(个老师)对应多(个学生),通过teacherId进行关联。
**************************************************************************************************************
------------------------------------------------第一种方式----------------------------------------------------
**************************************************************************************************************
1、首先在Teacher.java中添加一个List<Student>集合,表示多个学生。
修改之后的Teacher.java类:
public class Teacher {
    private String teacherName;
    private Integer teacherAge;
    private List stuList;
    //getXxx()和setXxx()方法省略
}
2、接下来就是在Mapper.xml中做文章了。
    2.1、StudentMapper.xml中的字段映射就安装正常的字段映射来写就可以了。
    2.2、TeacherMapper.xml文件
        
            
            ....
            
            
                ofType="Student实体类路径" select="getStudentByTeacherId"/>
            
        

          
              
              
            ...
         
        

        
这个时候,通过getTeacherByID就可以查出一个教师的信息和每个教师所对应的学生信息。
这种方式可能适用于查询条件就是两张表的关联字段,如果查询条件是其它字段的话,可能就不适用于这种了。
**************************************************************************************************************
------------------------------------------------第二种方式----------------------------------------------------
**************************************************************************************************************
第二种方式和第一种方式差不多,主要有以下几点的区别:
1、还是TeacherMapper.xml的配置文件中的字段映射:
    
2、这个时候,就不用写两个查询语句了,而且查询条件也可以是任意的字段了,只需要一个关联查询,将你想要的查出来就可以了
    
这种方式比第一种方式少了一个查询语句,而且查询条件也比较灵活了。

最后附上源文件的下载路径,欢迎下载:
源文件下载地址

你可能感兴趣的:(java技术,数据库)