Mybatis collection与association的区别解析
版权申诉
149 浏览量
更新于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-08-25 上传
2020-08-28 上传
2020-08-19 上传
2023-10-24 上传
点击了解资源详情
点击了解资源详情
weixin_38586118
- 粉丝: 6
- 资源: 922
最新资源
- 电源背板,可用于制作模块化电源,PCB开源-电路方案
- test1
- 拖放式
- operationsystem_questions:这是一个有助于学习的私人项目。 它包含来自“操作系统”类的问题
- 行业数据-20年8月份中国部分省份皮革制造企业注册数量.rar
- form-data-parser:用于连接或表达的中间件,它以一种理智的方式解析 FormData,不需要流
- C#简单仿MSN聊天软件
- 节俭:该软件应用程序将创建一个平台,在此平台上,个人可以共同出资,并且每个人都可以按约定的时间表接收所出资金的总和。 周期一直持续到所有捐助者都收到捐款为止
- Notifications
- Android-Plugin-For-SublimeText3
- react-ToDo:待办事项清单React
- 西门子PLC工程实例源码第527期:用S7300实现PID的实例.rar
- CapstoneDesign-VVFC:具有基于Python和Android OS的应用程序的VR Video FoV Collector
- 心脏模型:用于分析和可视化公开可用心脏模型的代码
- 行业数据-20年7月份抖音短视频用户年龄分布.rar
- log4js-service