<!--
方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集, 封装联表查询的数据(去除重复的数据)
select * from class c, teacher t where c.teacher_id=t.t_id and c.c_id=1
-->
<select id="getClass"parameterType="int" resultMap="ClassResultMap">
select* from class c, teacher t where c.teacher_id=t.t_id and c.c_id=#{id}
</select>
<resultMap type="_Classes"id="ClassResultMap">
<idproperty="id" column="c_id"/>
<resultproperty="name" column="c_name"/>
<association property="teacher" javaType="_Teacher">
<id property="id" column="t_id"/>
<result property="name" column="t_name"/>
</association>
</resultMap>
<!--方式二:嵌套查询:通过执行另外一个SQL映射语句来返回预期的复杂类型
SELECT* FROM class WHERE c_id=1;
SELECT* FROM teacher WHERE t_id=1 //1 是上一个查询得到的teacher_id的值-->
<select id="getClass2"parameterType="int" resultMap="ClassResultMap2">
select* from class where c_id=#{id}</select>
<resultMap type="_Classes"id="ClassResultMap2">
<idproperty="id" column="c_id"/>
<resultproperty="name" column="c_name"/>
<association property="teacher" column="teacher_id"select="getTeacher">
</association>
</resultMap>
<select id="getTeacher"parameterType="int" resultType="_Teacher">
SELECTt_id id, t_name name FROM teacher WHERE t_id=#{id}
</select>