MyBatis学习之关联(集合)映射:嵌套查询/结果

这篇博客深入探讨了MyBatis中的关联映射(association)和集合映射(collection),包括嵌套查询和嵌套结果的使用。通过示例解释了resultMap元素及属性,展示了如何处理一对一和一对多的关系。总结了association和collection的区别,以及嵌套查询和嵌套结果在性能和延迟加载上的差异。
摘要由CSDN通过智能技术生成

 

Table of Contents

01 结果映射(resultMap):集合(关联)映射

    1.1 代码示例

    1.2 resultMap元素及属性说明

 

02 关联映射(association)

    2.1 关联的嵌套 Select 查询

    2.2 关联的嵌套结果

 

03 集合映射(collection)

    3.1 集合的嵌套 Select 查询

    3.2 集合的嵌套结果映射

 

04 总结

    Mybatis中 collection 和 association 的区别?

    关于嵌套查询、嵌套结果的区别:

   关于关于嵌套查询才有延迟加载(懒加载)


01 结果映射(resultMap):集合(关联)映射

1.1 代码示例

<!-- 结果映射 -->
<resultMap id="detailedBlogResultMap" type="Blog">
  <id property="id" column="blig_id"/>
  <result property="title" column="blog_title"/>
  <!-- 关联映射:用嵌套结果实现 -->
  <association property="author" javaType="Author">
    <id property="id" column="author_id"/>
    <result property="username" column="author_username"/>
  </association>
  <!-- 关联映射:用嵌套查询实现 -->
  <association property="author" javaType="Author" select="" colunm="">
     这里并没有<id /> 和<result /> 标签,嵌套结果才需要
  </association>
  
  <!-- 集合映射:用嵌套结果实现 -->
  <collection property="posts" ofType="Post">
    <id property="id" column="post_id"/>
    <result property="subject" column="post_subject"/>
  </collection>
  <!-- 集合映射:用嵌套查询实现 -->
  <collection property="posts" ofType="Post" select="" colunm="">
    这里并没有<id /> 和<result /> 标签,嵌套结果才需要
  </collection>
  </collection>
</resultMap>

1.2 resultMap元素及属性说明

<resultMap 属性有 id=" 唯一标识"  type="类的完全限定名, 或者一个类型别名"  >

包含标签有:

id 和 result 元素都将一个列的值映射到一个简单数据类型(String, int, double, Date 等)的属性或字段。

<id property="" column=""/>           //主键属性/字段的映射,property是实体类的属性,column是数据库的列名

<result property="" column=""/>     //普通属性/字段的映射,property是实体类的属性,column是数据库的列名

<!-- 关联映射:用嵌套结果实现 -->

<association property=""  javaType="">

    <id property="id" column="author_id"/>

    <result property="username" column="author_username"/>

</association>

<!-- 关联映射:用嵌套查询实现 -->

<association property=""  javaType=""  select=""  colunm=""  fetchType="">

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值