<!-- one to one and one to many nested query -->
<resultMap id="courseStudentNested" type="Course">
<id property="courseId" column="courseId"/>
<result property="courseType" column="courseType"/>
<result property="courseName" column="courseName"/>
<association property="classRoom" resultMap="classRoom"></association>
<collection property="students" ofType="Student" javaType="java.util.ArrayList"
column="courseId" select="getStudents">
</collection>
</resultMap>
<resultMap type="Student" id="student">
<id property="sId" column="studentId"/>
<result property="name" column="studentName"/>
</resultMap>
<select id="getStudents" parameterType="String" resultMap="student">
<![CDATA[Select student.id sId, student.name studentName from student where courseId=#{id}]]>
</select>
<select id="getCoursesStudentNested" resultMap="courseStudentNested">
<![CDATA[select c.courseId courseId,c.courseType courseType,c.courseName courseName,
room.roomId roomId,room.roomName roomName,room.area area
from course c
inner join classroom room
on c.roomId=room.roomId]]>
</select>
然后在接口中添加一个方法
package com.mybatis.in;
import java.util.List;
public interface CourseMapper {
public List<Course> getCourses();
public List<Course> getCoursesClassRoom();
public List<Course> getCourseStudents();
public List<Course> getCoursesStudentNested();
public List<Student> getStudents(String courseId);
}