实体类:
package com.mybatisdemo.beans; public class Student { private Integer id; private String name; private Integer age; private Teacher teacher; public Student() { super(); // TODO Auto-generated constructor stub } public Student(String name, Integer age, Teacher teacher) { super(); this.name = name; this.age = age; this.teacher = teacher; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", age=" + age + ", teacher=" + teacher + "]"; } }
package com.mybatisdemo.beans; import java.util.ArrayList; import java.util.List; public class Teacher { private Integer id; private String name; private List<Student> students = new ArrayList<>(); public Teacher() { super(); // TODO Auto-generated constructor stub } public Teacher(String name, List<Student> students) { super(); this.name = name; this.students = students; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } @Override public String toString() { return "Teacher [id=" + id + ", name=" + name + ", students=" + students + "]"; } }
Dao层对应的映射文件Mapper
<?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.mybatisdemo.dao.StudentDao"> <resultMap type="com.mybatisdemo.beans.Student" id="studentMap"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <association property="teacher" javaType="com.mybatisdemo.beans.Teacher"> <id column="id" property="id"/> <result column="name" property="name"/> </association> <!-- <association column="teacher" property="teacher" javaType="com.mybatisdemo.beans.Teacher" select="com.mybatisdemo.dao.TeacherDao.queryTeacherById"/> --> </resultMap> <select id="queryStudentById" parameterType="int" resultMap="studentMap"> select id,name,age,teacher from student where id = #{id} </select> </mapper>
<?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.mybatisdemo.dao.TeacherDao"> <resultMap type="com.mybatisdemo.beans.Teacher" id="teacherResult"> <id column="id" property="id" javaType="Integer"/> <result column="name" property="name" javaType="String"/> </resultMap> <select id="queryTeacherById" parameterType="int" resultType="com.mybatisdemo.beans.Teacher"> select id,name from teacher where id = #{id} </select> </mapper>
测试类:
@Test public void testSelectStudent() { StudentDao studentDao = sqlSession.getMapper(StudentDao.class); Student student = studentDao.queryStudentById(1); System.out.println(student); }