一、创建数据库 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();