MyBatis映射关系(1-1 1-n n-n)

简介: 本文介绍MyBatis四大关联映射:一对一(字段与属性映射)、一对多(如用户含多个角色,用`<collection>`)、多对一(如博客关联作者,用`<association>`)、多对多(通过中间类实现,如用户与部门)。解决实体间复杂关系映射,提升数据操作效率。(238字)

本文介绍了MyBatis中四种核心关联映射:一对一(属性与字段映射)、一对多(如用户关联多个角色,使用&lt;collection&gt;)、多对一(如博客关联作者,使用&lt;association&gt;)和多对多(通过中间类实现,如用户与部门)。适用于解决实体间复杂关系映射问题。
1 一对一
定义一个一对一的Result,进行属性-字段之间的一对一关联映射即可,如果属性和字段是一致的,resultType实际也是可以的,resultMap更多是解决字段-属性不一致(满足驼峰命名就是一致),如id(属性)-USER_ID(字段)2 一对多设:一个用户对应多个角色User类中添加List一的mapper.xml中,resultMap添加标签.如:会得到类似这样的数据
JSON复制代码
{
"id": "1003",
"username": "小波",
"password": "123456",
"address": "北京市东城区",
"email": "510273027@qq.com",
"roles": [
{
"id": "1",
"name": "开发"
},
{
"id": "2",
"name": "TL"
}
]
}
3 多对一设:一个作者可以有多个博客Author类中添加Blog一的mapper.xml中添加如:
XML复制代码







或:
XML复制代码






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

相关文章
|
2月前
|
监控 Java 调度
XXLJob定时任务概述
定时任务指按时间表达式周期执行的任务,适用于对账、提醒、订单超时等场景。实现方式包括单体架构的轮询休眠、Timer、ScheduledExecutorService、Quartz及SpringTask;分布式架构面临重复执行、动态调整、故障转移等问题,主流方案有XXL-JOB、Elastic-Job、Saturn和ScheduleX等。
|
2月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,提升大模型在企业场景的准确性与安全性。分块策略是其核心,直接影响检索效果与回答质量。本文系统解析五种主流分块方法:固定大小、语义、递归、基于文档结构及LLM分块,对比其优缺点与适用场景,并提出组合优化路径,助力构建高效、可信的RAG系统。
|
2月前
|
人工智能 JSON 数据挖掘
大模型应用开发中MCP与Function Call的关系与区别
MCP与Function Call是大模型应用的两大关键技术。MCP为模型与外部工具提供标准化通信协议,实现跨模型、跨平台集成;Function Call则是模型调用外部函数的内置机制。前者如“蓝牙协议”,支持多设备互联,后者像“语音助手”,限于单机操作。两者在功能上互补:MCP支持工具热插拔、权限控制与远程调用,适用于企业级复杂系统;Function Call开发简单,适合快速验证单一模型能力。未来趋势将走向融合,形成“模型解析-协议传输-工具执行”的分层架构,推动AI应用生态标准化发展。
|
2月前
|
前端开发 Java 数据库
低代码技术架构
后端采用Spring Boot + Spring Cloud Alibaba微服务架构,基于Java 8+/17、Maven、MybatisPlus、Shiro+Jwt、Redis、Druid、Nacos等技术;前端使用Vue3.0 + TypeScript + Vite5 + Ant-Design-Vue4,支持权限控制与动态菜单。需IDEA、WebStorm/Vscode、Node 20+等开发环境。
|
2月前
|
消息中间件 SQL 存储
每日必会5
通过生产者确认、消息持久化、消费者ACK机制确保RabbitMQ消息不丢失;使用DelayExchange插件实现延迟消息;通过扩容消费者或队列解决消息积压。MyBatis中#{}预编译防注入,${}直接拼接;一级缓存基于SqlSession,二级缓存跨SqlSession共享;SQL执行经Executor、StatementHandler等组件完成。
|
2月前
|
存储 NoSQL 关系型数据库
4-MongoDB索引知识
MongoDB索引基于B树结构,支持单字段、复合、地理空间、文本及哈希索引,有效提升查询效率,避免全表扫描,适用于等值、范围、排序与全文检索,显著优化大数据量下的查询性能。
|
2月前
|
SQL Java 数据库连接
MyBatis分页
本文介绍MyBatis分页实现方式:RowBounds为内存分页,数据量大易溢出;PageHelper等插件通过SQL改写实现物理分页,支持多数据库;还可通过subList或自定义拦截器分页。总结:大数据场景推荐物理分页,性能更优,优先于逻辑分页。(238字)
|
2月前
|
消息中间件 人工智能 Linux
基于 RocketMQ 构建 高可靠 A2A 通信通道
A2A协议由Google发起,旨在实现跨厂商AI智能体的标准化通信。通过RocketMQ异步支持,提供高可靠、开箱即用的多智能体协同方案,助力构建开放、可扩展的智能体生态体系。
|
2月前
|
SQL 缓存 Java
MyBatis
MyBatis配置优先级:方法参数 &gt; resource/url &gt; properties。支持多环境配置与JDBC/MANAGED事务管理,XML实现一对一、一对多关联映射,分页支持逻辑与物理方式,推荐BatchExecutor批量操作,一级缓存默认开启,二级缓存需手动配置。
|
2月前
|
消息中间件 弹性计算 决策智能
五、实战演练:三步构建高可靠多智能体应用
本方案基于阿里云ECS与RocketMQ,构建多智能体协同系统,实现天气查询与行程规划。通过一键部署资源、创建Topic/Group、发布智能体应用三步,快速搭建支持异步通信的Agent架构。用户输入需求后,SupervisorAgent协调WeatherAgent和TravelAgent完成任务,全程可通过RocketMQ追踪消息轨迹,验证执行流程。