6.5 新特性与生态演进


文档摘要

6.5 新特性与生态演进 本节摘要:全册最后一节不教新刀工,画一张坐标图:3.5 系列哪些改进值得现在就用;MyBatis-Plus、PageHelper 架在框架本体的哪一层;jOOQ、Spring Data JDBC 这些"替代路线"各自的定位。分清框架本体、生态增强、替代路线三层,选型才不会被名词带走。 复盘的最后一站不进手术室,进档案室。用两张地图收尾:一张版本坐标——3.5 系列的改进哪些值得立即升级;一张生态坐标——围绕着 MyBatis 的那些名词,各自站在哪一层。 3.5 系列:值得用的改进 3.5 系列的更新偏"打磨"而非"翻新",按对本册内容的回填价值排个序: 改进 | 回填本册哪一节 | 用法变化 延迟加载聚合与代理优化 | 3.2 关联映射、6.

6.5 新特性与生态演进

本节摘要:全册最后一节不教新刀工,画一张坐标图:3.5 系列哪些改进值得现在就用;MyBatis-Plus、PageHelper 架在框架本体的哪一层;jOOQ、Spring Data JDBC 这些"替代路线"各自的定位。分清框架本体、生态增强、替代路线三层,选型才不会被名词带走。

复盘的最后一站不进手术室,进档案室。用两张地图收尾:一张版本坐标——3.5 系列的改进哪些值得立即升级;一张生态坐标——围绕着 MyBatis 的那些名词,各自站在哪一层。

3.5 系列:值得用的改进

3.5 系列的更新偏"打磨"而非"翻新",按对本册内容的回填价值排个序:

改进 回填本册哪一节 用法变化
延迟加载聚合与代理优化 3.2 关联映射、6.3 N 加一 懒加载触发的子查询行为更可控,配合聚合策略减少隐式子查询次数
@Param 与参数装配增强 2.2 参数入 多参数场景的命名规则更宽容,@Param 注解的默认名推断更稳定
TypeHandler 泛型支持增强 5.2 类型缝合线 自定义处理器的泛型注册更精确,List 误伤类问题缓解
ResultMap 继承与复用增强 3.1 结果映射 resultMap 的 extends 复用更顺,公共列映射少抄几遍
日志实现自动探测增强 6.4 排错取证 logImpl 不配也能按 classpath 自动选对日志框架
Optional 返回支持 1.4 会话查询 selectOne 可声明 Optional 返回,"查不到"语义显式化

升级建议:从 3.4.x 升到 3.5.x 是低风险动作——API 几乎无破坏,主要收益是上面这些打磨项。真正要动配置的是下一小节的事。

生态坐标:三层结构

围绕 MyBatis 的周边生态,按"架不架在框架本体上"分三层:

MyBatis 生态三层:本体、增强、替代

MyBatis-Plus:架在本体上,把 5.4 MBG 的"单表标准件"做成了运行时能力——BaseMapper 内置单表 CRUD,条件构造器(LambdaQueryWrapper)替代 Example,分页插件替代手写 LIMIT。用它的前提恰恰是懂本体:它生成的 SQL 出问题要回到本体查(映射、装配、执行的分层排错法原样适用),它没覆盖的多表关联照旧写 XML。

PageHelper:一个典型的 5.3 式插件——拦 Executor 改写 SQL 加 LIMIT 并附带 count 查询。理解了插件原理,它的 ThreadLocal 传参、分页不生效的排查(startPage 与查询之间插了别的 SQL)都不再是黑盒。

替代路线的定位差异

路线 抽象方式 适合谁
jOOQ SQL 即代码:类型安全的 DSL,写的是 SQL 语法、编 重 SQL 项目,想给 SQL 加编译期检查
Spring Data JDBC 聚合根 + 仓储:按领域模型聚合读写,不支持懒加载 中小项目,想绕开映射层直接领域建模
JPA/Hibernate 全自动 ORM:对象图透明持久化 领域模型复杂且愿意交出 SQL 控制权的团队

与 MyBatis 的根本分歧只在一点:SQL 控制权交不交出来。MyBatis 把 SQL 全部交你手写,换来透明与可控;替代路线按各自粒度接管 SQL,换来效率与抽象。这不是优劣题,是场景题——报表密集、SQL 深度调优的场景,MyBatis(或 jOOQ)顺手的概率大得多。

⚠️ 常见坑:引入 MyBatis-Plus 后混写两套查询体系,同一张表一半走 BaseMapper 一半走 XML,分页与字段策略各自为政。引入增强件就定好边界——单表归 Plus、多表归 XML,写进项目规范。

💡 关键直觉:技术选型先分层再比较。"MyBatis-Plus vs MyBatis"是增强层的选择题(可叠加可混用),"MyBatis vs JPA"是替代层的选择题(二选一)。混着比的人,多半还没分清这两层。

本节要点回顾

  • 3.5 系列是打磨型升级:懒加载、参数装配、TypeHandler、ResultMap、日志探测六处回填本册知识点,低风险值得升
  • 生态分三层:增强件架在本体上随装随卸,替代路线换抽象需架构决策
  • MyBatis-Plus 补单表:条件构造器替代 Example,多表照旧 XML;本体功底决定排错上限
  • PageHelper 是插件范本:5.3 的拦截器原理读懂它,分页失效也不再是黑盒
  • 选型的分水岭是 SQL 控制权:交与不交,先分层再比较

全册复盘到此收官。回到第 2、3、4 章,把你项目里的真实映射重写一遍——手术台搭好只是开始,刀工都在一台台手术里练出来。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U