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>

 

 

 

 

posted @ 2021-06-07 10:52  一拳超人的逆袭  阅读(53)  评论(0编辑  收藏  举报