1、多对一处理
-
编写实体类
package com.ss.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Student { private int id; private String name; private Teacher teacher; }
package com.ss.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Teacher { private int id; private String name; }
-
编写工具类 MybaitsUtils
-
编写配置文件
-
编写实体类对应的Mapper接口 和 Mapper.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ss.dao.StudentMapper">
<!--
1.查询出所有学生的信息
2.根据tid,查询对应的老师
-->
<select id="getAllStudent" resultMap="StudentTeacher">
select * from student
</select>
<resultMap id="StudentTeacher" type="Student">
<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>
<!--====================================================================================================-->
<!--嵌套查询-->
<select id="getAllStudent2" resultMap="StudentTeacher2">
select s.id sid,s.name sname,t.name tname,t.id tid
from student s,teacher t
where s.tid = t.id
</select>
<resultMap id="StudentTeacher2" 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>
</mapper>
- 编写测试类
2、一对多处理
-
编写实体类
package com.ss.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor public class Teacher { private int id; private String name; private List<Student> students; }
package com.ss.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Student { private int id; private String name; private int tid; }
-
编写工具类 MybaitsUtils
-
编写配置文件
-
编写实体类对应的Mapper接口 和 Mapper.xml文件
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ss.dao.TeacherMapper"> <!--嵌套查询--> <select id="getTeacher" resultMap="TeacherStudent"> select s.id sid,s.name sname ,t.name tname ,t.id tid from teacher t,student s where s.tid = t.id and t.id = #{tid} </select> <resultMap id="TeacherStudent" type="Teacher"> <result property="id" column="tid"/> <result property="name" column="tname"/> <collection property="students" ofType="Student"> <result property="id" column="sid"/> <result property="name" column="sname"/> <result property="tid" column="tid"/> </collection> </resultMap> <!--====================================================================================================--> <!--子查询--> <select id="getTeacher2" resultMap="TS"> select * from teacher where id = #{tid} </select> <resultMap id="TS" type="Teacher"> <result property="id" column="id"/> <result property="name" column="name"/> <collection property="students" ofType="Student" javaType="ArrayList" select="getStudentByid" column="id"/> </resultMap> <select id="getStudentByid" resultType="Student"> select * from student where tid = #{tid} </select> </mapper>
-
编写测试类