Mybatis映射关系

简介: 简介:本文介绍了MyBatis框架中四种常见的关系映射方式,包括一对一、一对多、多对一及多对多。一对一通过简单属性映射实现;一对多通过在主对象中添加集合属性并使用`<collection>`标签映射子对象集合;多对一则利用`<association>`标签在主对象中映射单个子对象;多对多需引入第三方类,分别在两个主对象中添加对方的集合属性,并通过`<collection>`标签实现映射。

1 一对一
定义一个一对一的Result,进行属性-字段之间的一对一关联映射即可,如果属性和字段是一致的,resultType实际也是可以的,resultMap更多是解决字段-属性不一致(满足驼峰命名就是一致),如id(属性)-USER_ID(字段)
2 一对多
设:一个用户对应多个角色
User类中添加List
一的mapper.xml中,resultMap添加标签.
如:
会得到类似这样的数据
JSON
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"id": "1003",
"username": "小波",
"password": "123456",
"address": "北京市东城区",
"email": "510273027@qq.com",
"roles": [
{
"id": "1",
"name": "开发"
},
{
"id": "2",
"name": "TL"
}
]
}
3 多对一
设:一个作者可以有多个博客
Author类中添加Blog
一的mapper.xml中添加
如:
XML
复制代码
1
2
3
4
5
6
7
8
9
10









或:
XML
复制代码
1
2
3
4
5
6
7
8
9
10











4 多对多
设:多个部门对应多个用户
定义一个第三方类,假设为UserForDept.java,属性private User user; private Dept dept;
User类中添加Set(针对不同场合这里也可以List),mapper.xml中添加添加UsersForDept
Dept类中添加Set(针对不同场合这里也可以List),mapper.xml中添加添加UsersForDept

目录
相关文章
|
5月前
|
Java 数据库连接 mybatis
mybatis映射关系(1-1 1-n n-n)
Mybatis 中的关系映射包括一对一、一对多和多对多。一对一映射可以通过ResultMap定义属性与字段的对应。一对多示例中,User类包含List&lt;Role&gt;,在User的mapper.xml中使用&lt;collection&gt;标签。多对一的情况,如Author与Blog,Blog的ResultMap中使用&lt;association&gt;来映射Author属性。多对多时,如部门与用户,通常需要中间表,并在双方实体中通过&lt;collection&gt;引用中间类,如UserForDept,来维护关系。
|
7月前
|
XML Java 数据库连接
MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程
MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程
131 0
|
7月前
|
Java 数据库连接 mybatis
mybatis-2.映射关系(1-1 1-n n-n)
mybatis-2.映射关系(1-1 1-n n-n)
|
7月前
|
SQL Java 数据库连接
Mybatis的映射关系配置
Mybatis的映射关系配置
71 0
|
Java 数据库连接 mybatis
快速学会MyBatis映射关系一对一
快速学会MyBatis映射关系一对一
105 0
|
SQL 存储 Java
MyBatis-21MyBatis高级结果映射【一对多映射(2种方式)】
MyBatis-21MyBatis高级结果映射【一对多映射(2种方式)】
112 0
|
SQL Java 数据库连接
MyBatis-20MyBatis高级结果映射【一对一映射(4种方式)】
MyBatis-20MyBatis高级结果映射【一对一映射(4种方式)】
63 0
|
SQL 存储 Java
Mybatis结果映射,你射准了吗?
Mybatis结果映射,你射准了吗?
|
Java 数据库连接
mybatis-plus和hibernate 忽略映射字段
mybatis-plus和hibernate 忽略映射字段
303 1