MyBatis 多對多查詢

一、創建數據庫 SQL

CREATE TABLE teacher (teacherId INT, username VARCHAR(20), age INT, sex VARCHAR(1));
CREATE TABLE student (id INT, username VARCHAR(20), age INT, sex VARCHAR(1));
CREATE TABLE mapper (tid INT, sid INT);

二、創建與數據庫表對應的實體類

public class Teacher implements Serializable {

    private int teacherId;
    private String username;
    private int age;
    private String sex;
    private List<Student> studentList;
	...
}
public class Student implements Serializable {

    private int studentId;
    private String username;
    private int age;
    private String sex;
	...
}

三、持久層接口

List<Teacher> findAll();

四、持久層接口映射文件

<resultMap id="teacherMap" type="chu.yi.bo.domain.Teacher">
    <id column="teacherId" property="teacherId"/>
    <result column="username" property="username"/>
    <result column="age" property="age"/>
    <result column="sex" property="sex"/>
    <collection property="studentList" ofType="chu.yi.bo.domain.Student">
        <id column="studentId" property="studentId"/>
        <result column="username" property="username"/>
        <result column="age" property="age"/>
        <result column="sex" property="sex"/>
    </collection>
</resultMap>

<select id="findAll" resultMap="teacherMap">
    SELECT t.*,s.* FROM teacher t INNER JOIN mapper m ON t.teacherId = m.tid INNER JOIN student s ON s.studentId = m.sid;
</select>

五、測試

List<Teacher> teacherList = teacherDao.findAll();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章