您的位置:首页 > 其它

Mybatis框架-20:多表操作之多对多——查询所有

2019-06-09 00:08 246 查看

这里我建立的多对多的关系是教师和学生之间的关系

多表之间的查询我们仍然可以使用左连接查询

第一步:mapper

教师的mapper

[code] /**
* 查询老师,并把关联的学生也查出来
* @return
*/
List<Teacher> getAllTeacher();

第二步:mapper.xml
由于多对多其实就是双方的一对多,本质上还是可以理解为一对多关系,所以结果的封装和一对多没有太大的区别,主要是sql的不同

[code]<resultMap id="teacherMapper" type="com.ctbu.domain.Teacher">
<id property="teacherId" column="teacherId"/>
<result property="teacherName" column="teacherName"/>
<collection property="students" javaType="list" ofType="com.ctbu.domain.Student">
<id property="studentId" column="studentId"/>
<result property="studentName" column="studentName"/>
</collection>
</resultMap>

<select id="getAllTeacher" resultMap="teacherMapper">
SELECT * FROM teacher t
LEFT JOIN teacher_student ts on
t.teacherId=ts.teacherId
LEFT JOIN student s on
ts.studentId=s.studentId;
</select>

第三步:测试类

[code]@Test
public void test1(){
SqlSession session = MyUtils.openSession();
TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
List<Teacher> teachers = teacherMapper.getAllTeacher();

for (Teacher teacher : teachers) {
System.out.println(teacher);
}
session.close();
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: