延续上一个博文
public interface TeacherMapper {
Teacher getTeacherById(@Param("id") int id);
Teacher getTeacherById1(@Param("id") int id);
}
<select id="getTeacherById1" resultMap="TeacherStu">
select * from teacher where id=#{id};
</select>
<resultMap id="TeacherStu" type="teacher">
<collection property="students" javaType="ArrayList" ofType="student" select="StudentTT" column="id"/>
</resultMap>
<select id="StudentTT" resultType="student">
select * from student where tid=#{id};
</select>
先查老师,随后处理其中的list,用到的是<collection>
,其中的property是pojo中的students,但是这里出现一个问题,一定要注意!!!list的javaType是ArrayList!!!!一定注意,随后是其中的student类型,调用的是哪个查询语句,最关键的是这个column,这里查学生的时候用的也是老师的id,因为是根据老师查他所具有的学生。
这里column应该是啥呢?应该是id,即老师的id,为什么?我们知道resultMap是结果集的一个映射,即查出来的老师映射过来,那么其内便具有id这个属性,是可以用来传递的。