Mybatis-day5
MyBatis多表联合查询笔记一.ResultMap多表查询不能用resultType只能映射单表必须用resultMap自定义映射规则解决核心问题多表字段重名如id、关联对象/集合映射。二、两大核心标签关联关系标签关键属性适用场景一对一associationjavaType关联类订单→用户一个订单属一个用户一对多collectionofType集合元素类用户→订单一个用户有多个订单三、SQL避坑2个要点联表用LEFT JOIN保证主表数据不丢比如查用户即使无订单也能返回重名字段加别名如o.id AS oid、u.id AS uid避免MyBatis映射混淆。四、必避3个坑命名一致Mapper.xml的namespace接口全类名id接口方法名标签别搞反一对一用association一对多用collection开启驼峰mapUnderscoreToCamelCasetrue自动映射create_time→createTime。五、简单示例一对一订单查用户resultMapidOrderUserMaptypeOrderidcolumnoidpropertyid/associationpropertyuserjavaTypeUseridcolumnuidpropertyid/resultcolumnusernamepropertyusername//association/resultMap一对多用户查订单resultMapidUserOrderMaptypeUseridcolumnuidpropertyid/collectionpropertyordersofTypeOrderidcolumnoidpropertyid/resultcolumnnumberpropertynumber//collection/resultMap多对多1. 核心关系标签关联关系核心逻辑标签/关键属性示例场景多对多拆成两个「一对多」 中间表collectionofType用户-角色中间表user_role2. 多对多要点核心必须有中间表如user_role关联两个主表的主键user_id、role_id映射主实体用collection嵌套关联实体比如User里加ListRole rolesSQL联查3张表主表1 中间表 主表2例SELECTu.id uid,r.id rid,r.role_nameFROMuseruLEFTJOINuser_role urONu.idur.user_idLEFTJOINrole rONur.role_idr.idWHEREu.id#{id}ResultMap关键结构resultMapidUserRoleMaptypeUseridcolumnuidpropertyid/collectionpropertyrolesofTypeRoleidcolumnridpropertyid/resultcolumnrole_namepropertyroleName//collection/resultMap六、MyBatis缓存一级二级1. 一级缓存本地缓存✅ 特性默认开启SqlSession级别同一个会话内有效✅ 效果同SqlSession、同SQL、同参数只查1次数据库后续读缓存❌ 失效场景增删改操作、关闭/切换SqlSession、手动清空缓存sqlSession.clearCache()。2. 二级缓存全局缓存✅ 开启条件三步必做核心配置开启setting namecacheEnabled valuetrue/默认true可省略Mapper.xml加cache/标签开启当前Mapper的二级缓存实体类实现Serializable接口缓存需序列化✅ 特性SqlSessionFactory级别跨SqlSession复用缓存❌ 注意增删改会清空当前Mapper的二级缓存避免数据脏读。3. 缓存核心记忆点缓存级别作用域开启方式核心特点一级SqlSession默认开启同会话复用关闭即失效二级SqlSessionFactory手动配置序列化跨会话复用增删改清空七、核心避坑补充多对多别忘中间表标签仍用collection不是新标签二级缓存只缓存查询结果实体类必须序列化缓存优先级二级缓存 → 一级缓存 → 数据库。

相关新闻

杰理之1. 启动解码和关闭解码【篇】

杰理之1. 启动解码和关闭解码【篇】

//打开解码,ch_num暂时只支持填1,暂时只支持解码单声道opus编码器的编码数据 //source_uuid固定填NODE_UUID_SOURCE_DEV0 int dev_flow_player_open(u8 ch_num, u16 source_uuid); //关闭解码 void dev_flow_player_close(void);

2026/5/17 8:44:36 阅读更多 →
2026年降AIGC率工具横评:便宜的和贵的差距到底有多大

2026年降AIGC率工具横评:便宜的和贵的差距到底有多大

2026年降AIGC率工具横评:便宜的和贵的差距到底有多大 同一篇论文,最贵的工具降到8.6%,最便宜的降到23%。差距有多大?大到可能决定你答辩能不能过。 2026最新降AI率工具测评排名:比话(8.6%)>…

2026/5/17 11:52:18 阅读更多 →
自研 Ollama 企业级网关:本地大模型生产化落地的工程化实践

自研 Ollama 企业级网关:本地大模型生产化落地的工程化实践

在企业内网本地大模型私有化部署的浪潮中,Ollama 凭借开箱即用、轻量易部署的特性,成为快速验证模型能力的首选工具。但在对接真实生产场景时会发现,裸用 Ollama 始终停留在 “技术 Demo” 阶段 —— 无法支撑多业务系统高并发调用、缺乏企业…

2026/7/3 22:53:40 阅读更多 →

最新新闻

抖音下载器终极指南:如何高效批量下载无水印抖音内容

抖音下载器终极指南:如何高效批量下载无水印抖音内容

抖音下载器终极指南:如何高效批量下载无水印抖音内容 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…

2026/7/4 22:56:56 阅读更多 →
基于VGG-16与PyTorch的人脸识别系统实现

基于VGG-16与PyTorch的人脸识别系统实现

1. 项目概述:基于VGG-16与PyTorch的人脸识别实践 人脸识别作为计算机视觉领域的经典任务,早已从实验室走向日常生活。从手机解锁到门禁系统,这项技术正在改变我们与设备的交互方式。而VGG-16作为卷积神经网络(CNN)的代表性架构,以…

2026/7/4 22:56:56 阅读更多 →
DoWhy因果推断框架:从建模到证伪的四步工程化实践

DoWhy因果推断框架:从建模到证伪的四步工程化实践

1. 项目概述:因果推断不是统计拟合,而是现实世界的“反事实手术”“Causal Inference is a Minefield — Here’s How to Navigate It with DoWhy”这个标题一上来就用了一个非常精准的比喻——矿场。不是“花园”,不是“迷宫”,更…

2026/7/4 22:56:55 阅读更多 →
ChatGPT插件API密钥安全管理实战:从架构设计到自动化轮换

ChatGPT插件API密钥安全管理实战:从架构设计到自动化轮换

1. 项目概述:为什么ChatGPT插件密钥安全是生死线最近在折腾各种AI工具和插件,发现一个挺普遍但又被很多人忽视的问题:ChatGPT插件的API密钥管理。无论是自己开发插件,还是使用别人的,密钥泄露的风险都像悬在头顶的达摩…

2026/7/4 22:52:53 阅读更多 →
基于YOLOv8-seg的高精度道路缺陷检测系统开发

基于YOLOv8-seg的高精度道路缺陷检测系统开发

1. 项目背景与核心价值道路缺陷检测是智慧交通和市政养护领域的关键技术痛点。传统人工巡检方式存在效率低、漏检率高、主观性强等问题,尤其在夜间或恶劣天气条件下表现更差。我们团队基于YOLOv8-seg框架,融合EfficientRepBiPAN、AFPN-P345等50余项创新改…

2026/7/4 22:50:52 阅读更多 →
AI技术决策指南:从信息过载到可执行落地

AI技术决策指南:从信息过载到可执行落地

1. 项目概述:一份AI领域 Newsletter 的真实价值拆解“This AI newsletter is all you need #60”——看到这个标题,你第一反应可能是:又一份泛泛而谈的AI资讯合集?点开就看三行摘要、五个链接、一个ChatGPT新插件预告,…

2026/7/4 22:46:48 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻