2.映射关系(1-1 1-n n-n)

简介: MyBatis中通过resultMap实现一对一、一对多、多对一及多对多映射。一对一用于属性与字段映射;一对多通过`<collection>`关联主表与子表,如用户拥有多个角色;多对一通过`<association>`关联,如博客属于作者;多对多借助中间类实现,如用户与部门双向关联,均通过嵌套映射完成复杂数据结构封装。

1 一对一
定义一个一对一的Result,进行属性-字段之间的一对一关联映射即可,如果属性和字段是一致的,resultType实际也是可以的,resultMap更多是解决字段-属性不一致(满足驼峰命名就是一致),如id(属性)-USER_ID(字段)
2 一对多
设:一个用户对应多个角色
● User类中添加List
● 一的mapper.xml中,resultMap添加标签.
如:













会得到类似这样的数据
{
"id": "1003",
"username": "小波",
"password": "123456",
"address": "北京市东城区",
"email": "510273027@qq.com",
"roles": [
{
"id": "1",
"name": "开发"
},
{
"id": "2",
"name": "TL"
}
]
}
3 多对一
设:一个作者可以有多个博客
● Author类中添加Blog
● 一的mapper.xml中添加
如:








或:











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

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
清华大学NLP开源项目,6大神器推荐
清华大学NLP开源项目,6大神器推荐
1151 0
|
消息中间件 机器学习/深度学习 关系型数据库
|
6月前
|
数据库
各种锁的专题
数据库锁机制简介:包括写锁(排他)、共享锁(读)、排他锁、间隙锁、行锁、表锁及分布式锁,用于控制并发访问,保证数据一致性与完整性。
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
AI生成内容为什么有"AI味"?各大模型如何破局
本文深入探讨了AI生成内容中普遍存在的“AI味”现象,从技术角度剖析其成因及解决方法。“AI味”主要表现为语言模式同质化、情感表达平淡、创新性不足和上下文理解局限。这些特征源于训练数据偏差、损失函数设计及安全性约束等技术因素。各大厂商如OpenAI、Anthropic、Google以及国内的百度、阿里云等,正通过多样性训练、Constitutional AI、多模态融合等方法应对这一挑战。未来,对抗性训练、个性化定制、情感建模等技术创新将进一步减少“AI味”。尽管“AI味”反映了当前技术局限,但随着进步,AI生成内容将更自然,同时引发关于人类创作与AI生成界限的哲学思考。
1602 0
|
Go
Golang语言基础之接口(interface)及类型断言
这篇文章是关于Go语言中接口(interface)及类型断言的详细教程,涵盖了接口的概念、定义、实现、使用注意事项以及类型断言的多种场景和方法。
611 4
|
机器学习/深度学习 数据采集 算法
【机器学习】朴素贝叶斯分类器的工作流程?
【5月更文挑战第10天】【机器学习】朴素贝叶斯分类器的工作流程?
|
数据建模 5G
带你读《5G大规模天线增强技术》——2.4.2 天线设置
带你读《5G大规模天线增强技术》——2.4.2 天线设置
|
网络安全
|
监控 安全 数据安全/隐私保护
RBAC权限管理(二)
RBAC权限管理
1438 0

热门文章

最新文章