当前位置: 首页 > news >正文

MyBatis 关联映射与多表查询实战教程


一、关联查询基础
1. 连接类型与选择
  • LEFT JOIN(左连接)
SELECT u.*, r.role_name 
FROM User u 
LEFT JOIN user_role ur ON u.id = ur.uid 
LEFT JOIN Role r ON ur.rid = r.id;
- **规则**:以左表为主,保留左表所有记录,右表无匹配时填充`NULL`。  
- **场景**:查询主体数据,允许关联数据缺失。
  • RIGHT JOIN(右连接)
SELECT e.*, d.name 
FROM Emp e 
RIGHT JOIN Dept d ON e.dept_id = d.id;
- **规则**:以右表为主,保留右表所有记录,左表无匹配时填充`NULL`。  
- **场景**:强制包含副表数据,即使主表无关联记录。
  • INNER JOIN(内连接)
    • 规则:仅返回两表匹配的记录。
    • 场景:严格关联数据,过滤不匹配的记录。

二、别名的核心作用与使用规范
1. 为什么需要别名?
  • 解决列名冲突:多表联查时,不同表的同名字段(如idname)需通过别名区分。
  • 明确字段来源:通过别名标识字段所属表(如e.id AS eid表示员工表的id)。
2. 别名设置规范
  • 表别名:简短且一致(如User uRole r)。
  • 列别名:格式为表别名_列名(如e.id AS eid)。
  • SQL 示例
SELECT u.id AS uid,    -- 用户表id → uidr.id AS rid,    -- 角色表id → ridr.name AS rname -- 角色表name → rname
FROM User u
LEFT JOIN user_role ur ON u.id = ur.uid
LEFT JOIN Role r ON ur.rid = r.id;

三、ResultMap 映射详解
1. <association>:一对一/多对一映射
  • 用途:映射单个嵌套对象(如员工属于一个部门)。
  • 关键属性
    • property:对象属性名(如Emp.dept)。
    • javaType:关联对象的全限定类名(如cn.cjxy.domain.Dept)。
  • 示例
<resultMap id="empResultMap" type
http://www.xdnf.cn/news/563239.html

相关文章:

  • 人工智能在生物医学研究中的创新应用
  • 基于两阶段交互控制框架的互联多能系统协同自治优化
  • JVM 与容器化部署调优实践(Docker + K8s)
  • 如何在Java中处理PDF文档(教程)
  • 【C/C++】探索单例模式:线程安全与性能优化
  • MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)
  • 制作跨平台AppImage包的方法
  • 基于STM32的智能台灯_自动亮度_久坐提醒仿真设计(Proteus仿真+程序设计+设计报告+讲解视频)
  • SQLMesh 宏操作符详解:@IF 的条件逻辑与高级应用
  • React---day1
  • asp.net web form nlog的安装
  • 9.PostgreSQL初体验
  • Flink SQL 计算实时指标同比的实现方法
  • vue3使用 Tailwind CSS (4.多版本)
  • UML 图的细分类别及其应用
  • virtualbox选项“启用套嵌vt-x/amd-v“不可用
  • 【论文阅读 | CVPR 2024 |RSDet:去除再选择:一种用于 RGB - 红外目标检测的由粗到精融合视角】
  • 论文篇-1.2.如何读好一篇论文
  • [实战]用户系统-1-基础功能完善
  • 笔记:NAT
  • 【笔记】排查并解决Error in LLM call after 3 attempts: (status code: 502)
  • 支持向量机(SVM):分类与回归的数学之美
  • 鸿蒙UI开发——Builder与LocalBuilder对比
  • 目标检测:YOLO 模型详解
  • 跨部门项目管理优化:告别邮件依赖
  • 提示词工程(Prompt Engineering)是智能Agent交互中不可或缺的一环
  • AI数字人一体机和智慧屏方案:开启智能交互新纪元
  • LeetCode 649. Dota2 参议院 java题解
  • 数独求解器3.0 增加latex格式读取
  • 攻防世界——Web题 fakebook