6.多对一联表查询
环境配置
pojo
@Data public class Student { private int id; private String name; //学生关联一个老师 private Teacher teacher; } @Data public class Teacher { private int id; private String name; }
接口方法
public interface StudentMapper { //查询所有的学生的信息,以及对应的老师的信息 public List<Student> getStudents(); public List<Student> getStudents2(); }
方式一
<!--方法一 按照查询嵌套处理--> <select id="getStudents" resultMap="StudentTeacher"> select * from student </select> <resultMap id="StudentTeacher" type="Student"> <!--复杂属性的处理--> <association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/> </resultMap> <select id="getTeacher" resultType="Teacher"> select * from teacher where id =#{id} </select>
方式二(推荐)
<!--方法二 按照结果嵌套处理-->
<select id="getStudents2" resultMap="StudentTeacher2"> select s.id sid,s.name sname,t.name tname 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"/>
<!--对应属性teacher-->
<association property="teacher" javaType="Teacher"> <result property="name" column="tname"/> </association> </resultMap>