10.多对一处理
测试环境搭建
-
导入lombok
<dependencies> <!--Lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency> </dependencies>
-
新建实体类teacher和student
package com.believe.pojo; import lombok.Data; @Data public class Teacher { private int id; private String name; }
package com.believe.pojo; import lombok.Data; @Data public class Student { private int id; private String name; private Teacher teacher; }
-
新建Mapper接口
package com.believe.mapper; public interface TeacherMapper { }
package com.believe.mapper; public interface StudentMapper { }
-
新建Mapper.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.believe.mapper.TeacherMapper"> </mapper>
<?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.believe.mapper.StudentMapper"> </mapper>
-
在mybatis-config绑定Mapper.xml
<!--绑定接口--> <mappers> <mapper resource="com/believe/mapper/StudentMapper.xml"/> <mapper resource="com/believe/mapper/TeacherMapper.xml"/> </mappers>
-
测试
SQL语句
select s.id,s.name,t.name from student s,teacher t where s.tid = t.id;
按照查询嵌套处理
<select id="getStudent01" resultMap="getStudent01" >
select * from student;
</select>
<resultMap id="getStudent01" type="student">
<result property="id" column="id" />
<result property="name" column="name" />
<association property="teacher" column="tid" javaType="Teacher" select="getTeacher01" />
</resultMap>
<select id="getTeacher01" resultType="Teacher" >
select * from teacher where id = #{tid};
</select>
按照结果嵌套处理
<select id="getStudent02" resultMap="getStudent02" >
select s.id sid,s.name sname,t.id tid,t.name tname from student s,teacher t where s.tid = t.id;
</select>
<resultMap id="getStudent02" type="student" >
<result property="id" column="sid" />
<result property="name" column="sname" />
<association property="teacher" javaType="Teacher" >
<result property="id" column="tid" />
<result property="name" column="tname" />
</association>
</resultMap>