Mybatis collection与association的区别解析
版权申诉
61 浏览量
更新于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中构建复杂的数据对象关系。
2076 浏览量
6954 浏览量
267 浏览量
273 浏览量
676 浏览量
171 浏览量
135 浏览量
379 浏览量
点击了解资源详情
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
weixin_38586118
- 粉丝: 6
最新资源
- ABAP基础操作与系统字段详解
- Linux Kernel中文版详解:硬件与软件基础、存储管理和进程管理
- 精通Linux:从新手到高手的实战教程
- 3S技术集成与应用探索
- LPC2000系列MCU使用SPI接口访问MMC卡教程
- ArcGIS Engine白皮书:基于ESRI技术的自定义GIS应用开发指南
- Oracle数据库入门:从基础到SQL操作
- DOS命令详解:ping与ipconfig的使用技巧
- Visual C++ MFC入门教程:面向对象的Windows应用开发
- Struts2 框架深度解析
- AS/400 RPG语言编程指南
- SAP BAPI 用户指南:高级教程
- 深入学习Svn客户端:服务器功能、TortoiseSVN安装与工作流程
- Compass: Java搜索引擎框架, Hibernate替代方案(最新1.1M1版)
- Linux内核0.11详解与编译指南
- STL常见修改算法详解