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

简介: MyBatis中通过resultMap实现关联映射:一对一使用基本映射或resultMap解决字段不一致;一对多在“一”方配置`<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

相关文章
|
1天前
|
数据采集 领域建模 数据库
领域模型图(数据架构/ER图)
本文介绍如何通过四色原型法进行领域建模,构建数据架构中的ER图。以风控系统为例,依次解析关键流程、识别时标性原型(MI)、参与方-地点-物品原型(PPT)、角色原型(Role)和描述原型(DESC),逐步提炼出实体与关系,最终形成简洁的ER图,助力数据模型设计。
领域模型图(数据架构/ER图)
|
1天前
|
JSON Java API
用 Swagger2 让 Spring Boot 接口“自己说话”
Swagger2助力Spring Boot项目实现API自动化文档,通过注解自动生成接口说明与测试页面,提升前后端协作效率,支持在线调试、参数描述、示例响应,告别手动维护文档与Postman频繁切换。
|
1天前
|
前端开发 程序员 开发者
常见注解及使用说明
本文介绍了SpringMVC中@RequestMapping注解的作用及原理,它将HTTP请求映射到控制器方法,实现前后端接口路径对应。并通过@GetMapping等派生注解简化常用请求类型,帮助开发者高效构建Web接口。
|
1天前
|
存储 数据库
数据库设计三范式
数据库三范式是设计合理表结构的指导原则。第一范式要求字段原子性,不可再分;第二范式要求消除部分依赖,一张表只描述一件事;第三范式要求消除传递依赖。但实际应用中需结合业务权衡,不必严格拘泥。
|
1天前
|
SQL 安全 关系型数据库
了解SQL注入
SQL注入是一种通过恶意输入操纵数据库查询的攻击方式,可导致身份绕过、数据泄露、篡改甚至远程命令执行。其原理是利用Web应用对用户输入验证不足,将恶意SQL代码注入语句中。防御措施包括使用参数化查询、严格输入验证(白名单)、错误信息屏蔽及部署入侵防御系统,尤其推荐在应用层结合预编译语句全面防范。
|
1天前
|
SQL NoSQL 前端开发
大厂如何解决订单幂等问题
为保障分布式系统数据一致性,需实现接口幂等性。创建订单时,通过预生成唯一订单号并利用数据库主键唯一约束,防止重复插入;支付时结合Redis或DB流水表标记请求处理状态,避免重复扣款。针对ABA问题,采用版本号机制,更新时校验版本并原子自增,确保数据正确。方案适用于各类数据库操作,通用性强。
|
1天前
|
敏捷开发 Java 测试技术
为什么要单元测试
本文探讨单元测试如何让软件开发“提速”而非“踩刹车”。从测试体系演进出发,解析为何谷歌、微软等企业推崇“测试金字塔”,强调单元测试作为地基的重要性。它能提升调试效率、代码质量与研发信心,助力持续交付。忽视单测将积累技术债务,陷入维护困境。写好单测,是迈向高效、可演进系统的必由之路。
|
1天前
|
存储 安全 小程序
1.认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。其核心为令牌机制,支持四种模式:授权码模式(最安全,常用于第三方登录)、简化模式(适用于无后端应用)、密码模式(需高度信任)和客户端模式(服务间调用)。广泛应用于API授权与单点登录场景。
|
1天前
|
存储 安全 Java
1.RememberMe简介及用法
RememberMe功能实现用户关闭浏览器后仍保持登录状态,通过Cookie存储令牌而非明文密码。Spring Security中配置rememberMe()并设置key,登录时生成持久化令牌存于Cookie,后续请求自动携带验证身份。但需防范令牌泄露风险,可通过数据库持久化Token并增加二次校验提升安全性。
|
1天前
|
存储 安全 Java
认证源码分析与自定义后端认证逻辑
本文深入分析Spring Security认证流程,从UsernamePasswordAuthenticationFilter到AuthenticationManager、ProviderManager,最终解析DaoAuthenticationProvider如何通过UserDetailsService实现自定义认证。重点揭示了自定义用户服务需实现loadUserByUsername并返回含权限的UserDetails对象,结合配置类注册服务,实现数据库认证。附完整代码仓库。