多对一查询使用的是嵌套方式:
<select id="getStudent2" resultMap="studentTeacher2">
select s.id sid,s.name sname,t.name tname
from mybatis.student s,mybatis.teacher t
where s.tid = t.id;
</select>
<!-- property实体类 column数据库 起了别名就用别名-->
<resultMap id="studentTeacher2" type="student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<!--复杂的属性,需要单独处理 如果是一个对象就用association,集合使用collection
javaType="Teacher"对象类型 -->
<association property="teacher" javaType="Teacher">
<result property="name" column="tname"/>
</association>
</resultMap>
一对多查询嵌套方式:
<select id="getTeacher" resultMap="TeacherStudent">
select s.id sid,s.name sname,t.name tname,t.id tid
from mybatis.teacher t ,mybatis.student s
where s.tid = t.id and t.id = #{tid}
</select>
<resultMap id="TeacherStudent" type="Teacher">
<result property="id" column="tid"/>
<result property="name" column="tname"/>
<!-- 集合使用collection,集合中的泛型信息使用ofTyp获取-->
<collection property="students" ofType="student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<result property="tid" column="tid"/>
</collection>
</resultMap>
MyBatis 中的一对多与多对一查询映射
这篇博客详细介绍了在 MyBatis 框架中如何进行一对多和多对一的查询映射。通过示例展示了如何使用嵌套方式配置 SQL 语句和 resultMap,包括 association 和 collection 的使用,以便于在 Java 对象中处理复杂的数据关系。
435

被折叠的 条评论
为什么被折叠?



