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

简介: 本文详解MyBatis中一对一、一对多、多对一及多对多映射关系的实现方式,涵盖实体类设计与XML配置,通过JSON与XML示例展示数据结构与resultMap用法,帮助开发者掌握复杂关联映射。

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

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

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中添加<association>
如:

XML

复制代码

1

2

3

4

5

6

7

8

9

10

<resultMap id="blogResult" type="Blog">

<id property="id" column="blog_id" />

<result property="title" column="blog_title"/>

<association property="author" column="blog_author_id" javaType="Author" resultMap="authorResult"/>

</resultMap>


<resultMap id="authorResult" type="Author">

<id property="id" column="author_id"/>

<result property="username" column="author_username"/>

</resultMap>

或:

XML

复制代码

1

2

3

4

5

6

7

8

9

10

<resultMap id="productBean" type="Blog">

<id property="id" column="blog_id" />

<result property="title" column="blog_title"/>

<!-- 多对一 -->

<!-- property: 指的是属性名称, javaType:指的是属性的类型 -->

<association property="category" javaType="Author">

<id column="cid" property="author_id"/>

<result column="username" property="username"/>

</association>

</resultMap>

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

若有收获,就点个赞吧

油炸

相关文章
|
canal 存储 SQL
MySQL 与 Redis 缓存的同步方案
本文介绍MySQL与Redis缓存的同步的两种方案 方案1:通过MySQL自动同步刷新Redis,MySQL触发器+UDF函数实现 方案2:解析MySQL的binlog实现,将数据库中的数据同步到Redis 一、方案1(UDF)
MySQL 与 Redis 缓存的同步方案
|
3月前
|
存储 人工智能 弹性计算
2026年阿里云618大促政策详解:新老用户权益与补贴规则
2026年阿里云618以**“AI加速季,智惠生产力”**为主题,活动周期为6月1日至6月30日,为期30天,是阿里云年度力度最大的云产品促销活动。本次大促投入**5亿元算力补贴**,覆盖轻量应用服务器、ECS云服务器、GPU高性能实例、数据库、AI大模型、存储与CDN等全品类产品,构建“新客秒杀、老客同价、企业补贴、AI特惠”的完整优惠体系。政策层面打破行业“首年低价、次年涨价”的痛点,推出**续费同价至2029年**、**新老用户权益互通**、**企业迁云高额补贴**等核心规则,同时将AI产品纳入优惠核心,通义千问主力模型直降97%,GPU实例低至1.5折。本文从活动基础信息、核心优惠政策
833 3
|
3月前
|
网络协议 应用服务中间件 网络安全
阿里云SSL证书全流程指南:从申请、下载到IIS/Nginx/Apache/Tomcat部署实战
本文系统讲解阿里云SSL证书从申请到部署的完整技术流程。首先介绍SSL/TLS基础概念与阿里云证书类型选型,包括免费DV证书、付费OV/EV证书的区别与适用场景。然后详细讲解个人测试证书与正式证书的申请流程,涵盖自动DNS验证与手动DNS验证两种方式。证书签发后,分别针对Nginx、Apache、Tomcat、IIS四大主流Web服务器,给出从证书下载、上传、配置到验证的完整操作步骤与代码示例。最后总结443端口开放、证书链完整性、配置文件路径等常见部署问题及解决方案,帮助读者一步到位完成HTTPS加密配置。
436 0
|
3月前
|
人工智能 运维 自然语言处理
开源 AI 智能体 Hermes 功能剖析与 Windows 搭建方案
Hermes Agent 是 Nous Research 推出的开源AI智能体,主打持久记忆与自主进化,集成全域检索、三层长效记忆、智能自动化、风格化创作及增强语音交互五大能力,支持 Windows 本地一键部署,45.7MB 轻量安装,小白友好无踩坑。
Figma中文版设计软件!支持UI设计+原型制作+团队协作+代码生成
Figma是主流UI/UX设计工具,支持中文界面、实时协作与跨平台使用。本文提供详细中文版安装指南:解压→运行Figma中文版.exe→用邮箱/Google账号登录,即刻开启高效设计协作。(239字)
Figma中文版设计软件!支持UI设计+原型制作+团队协作+代码生成
|
3月前
|
人工智能 前端开发 数据可视化
股票财报分析系统的开发费用
本系统是纯可视化、无表格、AI驱动的股票财报分析工具,费用取决于数据源(免费数百元/年 vs 商业授权5万+)、AI文本生成(LLM调用成本)、定制图表开发(ECharts/AntV动效)及安全合规要求。预算从3万(个人MVP)到百万级(金融机构)不等,前端可视化占30%为最大投入。
|
9月前
|
数据采集 领域建模 数据库
领域模型图(数据架构/ER图)
本文介绍如何通过四色原型法构建领域模型,并逐步推导出数据架构中的ER图。采用红色(时标性)、绿色(参与方-物品-地点)、黄色(角色)和蓝色(描述)四色模型,结合风控系统案例,详解从业务流程到实体关系图的建模过程,助力精准梳理数据结构。
 领域模型图(数据架构/ER图)
|
9月前
|
消息中间件 运维 物联网
语音通知
语音通知服务适用于科技公司服务器或物联网设备异常时的告警通知。通过语音电话形式,向处理人播报预设模板内容,支持变量替换实现个性化提醒。需开通语音服务并申请资质、话术、号码及模板,可通过API发起呼叫并查询记录,支持主动查询与消息回执两种结果获取方式,提升运维响应效率。
语音通知
|
9月前
|
JSON 安全 机器人
钉钉通知
本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息推送。内容涵盖机器人创建、Webhook配置、Postman测试及Java代码实现,并提供限流策略与关键词安全设置等最佳实践,助力实时监控与异常通知。
|
6月前
|
缓存 监控 Java
从 GC 频繁到毫秒级停顿:JVM 内存调优分代配比、晋升机制与架构策略全拆解
本文深入剖析JDK 17下JVM内存调优核心:从分代回收底层逻辑、年轻代/老年代配比规则,到对象晋升机制与四大坑点;涵盖G1/Parallel收集器调优实践、代码/架构级优化策略,并附生产级参数配置与避坑指南,兼顾深度与落地性。
608 3

热门文章

最新文章