Mybatis collection与association的区别解析
版权申诉
188 浏览量
更新于2024-09-11
收藏 65KB PDF 举报
"这篇文章除了介绍Mybatis中`collection`和`association`的使用区别,还通过实例解析了一对一和一对多的关系映射。"
在Mybatis框架中,`collection`和`association`是用来处理对象之间的关联关系,它们在映射XML配置文件中扮演着关键角色。这篇文章主要探讨了这两个概念的区别,并通过具体的Java类和映射示例进行了解析。
1. 关联 - association
`association` 主要用于表示一对一(1:1)或一对多(1:n)的关系,其中一方(通常是主表)包含另一方(从表)的一个实例。例如,在`User.java`类中,`card_one`属性就是与`Card`类的一个实例关联,这通常代表一个用户只有一个主卡。在映射时,我们使用`association`标签来处理这种关系。下面是一个示例:
```xml
<!-- Person的映射文件 -->
<resultMap id="personMap" type="com.glj.poji.Person">
<!-- ...其他属性映射... -->
<association property="card" javaType="com.glj.poji.Card">
<id property="id" column="card_id"/>
<!-- ...其他Card属性映射... -->
</association>
</resultMap>
```
2. 集合 - collection
`collection` 则用于表示一对多(1:n)或多对多(m:n)的关系,其中一个实体可以拥有多个关联实体的实例。在`User.java`类中,`card_many`属性是一个`Card`对象的列表,代表一个用户可以有多个副卡。映射时,我们使用`collection`标签来处理这种关系。以下是一个示例:
```xml
<!-- User的映射文件 -->
<resultMap id="userMap" type="com.glj.poji.User">
<!-- ...其他属性映射... -->
<collection property="card_many" javaType="java.util.List" ofType="com.glj.poji.Card">
<id property="id" column="card_id"/>
<!-- ...其他Card属性映射... -->
</collection>
</resultMap>
```
在实际应用中,我们需要根据业务需求选择合适的标签。对于一对一的关系,如人与身份证,我们使用`association`;而对于一对多的关系,如用户与多张卡片,我们使用`collection`。正确理解和使用这两个标签,能帮助我们更有效地在Mybatis中构建复杂的数据对象关系。
2020-12-14 上传
2020-08-25 上传
2017-07-29 上传
2023-03-30 上传
2023-10-18 上传
2023-04-22 上传
2023-09-23 上传
2023-10-09 上传
2023-03-24 上传
weixin_38586118
- 粉丝: 6
- 资源: 922
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦