在StudentMapper.xml 需要使用复杂查询的方法,
1、先单独查学生和单独查老师
2、在中间使用结果映射 学生中reultMap ="StudentTeacher"
3、中间增加结果映射 resultMap id ="StudentTeacher" type="Student" 还是学生,只是需要通过tid查询到对应的老师
<!--复杂属性要单独处理
对象:association 在一个表中查询另外一张表,在sql中就叫子查询
集合:collection-->
<association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/>
第一步:不一样的内容是第三个属性,在学生类中为teacher, 所以:property = "teacher" 在数据库中列名为:column="tid" .
第二步:但学生类中的teacher属性需要在里面说明它为什么类 增加参数:javaType = "Teacher" 类 (注意首字母,大写为类名)
第三步:需要通过对应的tid值,对老师类进行子查询 select=“getTeacher” 获得老师信息。查询出来的结果,老师以对象的形式体现
----输出结果------------------------------------------------------------------------------------
Student(id=1, name=小明, teacher=Teacher(id=1, name=秦老师))
Student(id=2, name=小红, teacher=Teacher(id=1, name=秦老师))
Student(id=3, name=小张, teacher=Teacher(id=1, name=秦老师))
Student(id=4, name=小李, teacher=Teacher(id=1, name=秦老师))
Student(id=5, name=小王, teacher=Teacher(id=1, name=秦老师))
--------------------------------------------------------------------------------------------------
public void testStudent(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
List<Student> studentList = mapper.getStudent();
for (Student student : studentList) {
System.out.println(student);
}
sqlSession.close();
}
标签:03,Teacher,12,name,老师,id,Student,查询,teacher
From: https://www.cnblogs.com/RUI2022/p/17209271.html