一、按照查询嵌套处理
沿用上一篇博客“复杂查询环境搭建”项目
1.1、StudentsMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.massimo.dao.StudentsMapper">
<select id="getStudents" resultMap="StudentTeacher">
select * from students
</select>
<resultMap id="StudentTeacher" type="Students">
<result property="id" column="id"/>
<result property="name" column="name"/>
<!--复杂的属性:需要单独处理 对象association 集合:collection-->
<association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/>
</resultMap>
<select id="getTeacher" resultType="Teacher">
select * from teacher where id = #{id}
</select>
</mapper>
1.2、测试类MyTest
@Test
public void getStudents(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentsMapper mapper = sqlSession.getMapper(StudentsMapper.class);
List<Students> studentsList = mapper.getStudents();
for (Students students : studentsList){
System.out.println(students);
}
sqlSession.close();
}
1.3、效果
二、按照结果嵌套处理
2.1、StudentsMapper.xml
<select id="getStudents2" resultMap="StudentTeacher2">
select s.id sid , s.name sname ,t.name tname
from students s , teacher t
where s.tid = t.id;
</select>
<resultMap id="StudentTeacher2" type="Students">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<association property="teacher" javaType="Teacher">
<result property="name" column="tname"/>
</association>
</resultMap>
2.2、测试类MyTest
@Test
public void getStudents(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentsMapper mapper = sqlSession.getMapper(StudentsMapper.class);
List<Students> studentsList = mapper.getStudents2();
for (Students students : studentsList){
System.out.println(students);
}
sqlSession.close();
}