Mybatis中 collection 和 association 标签 的区别

本文详细解析了MyBatis中的<collection>和<association>标签在定义映射关系时的差异,涉及一对多、多对多和一对一关联,SQL查询方式以及JavaType和OFTYPE的区别,为面试准备提供参考。
摘要由CSDN通过智能技术生成

<collection> 和 <association> 是 MyBatis 中用于定义映射关系的标签,它们的区别如下:

目标对象类型:

<collection> 用于表示集合属性,即一个属性对应多个关联对象。
<association> 用于表示关联属性,即一个属性对应一个关联对象。
关联关系处理:

<collection> 用于处理一对多或多对多的关联关系,其中集合属性将包含对应的关联对象的集合。
<association> 用于处理一对一或多对一的关联关系,其中关联属性将包含对应的关联对象。
SQL 查询方式:

<collection> 通常需要执行额外的 SQL 查询来获取关联对象的数据,通常需要使用 select 子句指定查询语句。
<association> 通常会在关联对象的查询语句中使用 join 操作,将关联对象的数据与当前对象的数据一起查询出来。


映射方式:

<collection> 通常在结果映射中使用嵌套的 <resultMap> 定义,以映射关联对象的属性。
<association> 通常在结果映射中使用 <result> 标签定义,以映射关联对象的属性。

        总结起来,<collection> 用于表示一对多或多对多的集合属性,并需要执行额外的 SQL 查询来获取关联对象的数据,而 <association> 用于表示一对一或多对一的关联属性,并使用 join 操作将关联对象的数据与当前对象一起查询出来。

原文链接

JAVATYPE和OFTYPE的区别?

  • JavaType:实体类中属性的类型。
  • OfType:泛型的类型。用来指定映射到集合中的pojo的类型

Mybatis必看经典面试题

 

MyBatiscollection和association都是用来处理关联关系的元素,但是它们的作用和用法有所不同。 1. collection:用于处理一对多的关联关系,即一个实体对象包含多个子实体对象的情况。collection标签通常用于在一个实体类包含一个List或Set类型的属性,该属性包含多个子实体对象。示例: ```xml <resultMap id="authorMap" type="Author"> <id property="id" column="author_id"/> <result property="username" column="username"/> <result property="password" column="password"/> <collection property="articles" ofType="Article"> <id property="id" column="article_id"/> <result property="title" column="title"/> <result property="content" column="content"/> </collection> </resultMap> ``` 2. association:用于处理一对一的关联关系,即一个实体对象包含一个子实体对象的情况。association标签通常用于在一个实体类包含一个其他实体类类型的属性。示例: ```xml <resultMap id="articleMap" type="Article"> <id property="id" column="article_id"/> <result property="title" column="title"/> <result property="content" column="content"/> <association property="author" javaType="Author"> <id property="id" column="author_id"/> <result property="username" column="username"/> <result property="password" column="password"/> </association> </resultMap> ``` 总结: collection和association都是用于处理关联关系的元素,但是collection用于处理一对多的关联关系,association用于处理一对一的关联关系。在具体使用时,需要根据实际情况选择合适的标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚人钊呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值