第6章 手术复盘:事务规范性能与演进


文档摘要

第 6 章 · 手术复盘:事务、规范、性能与演进 章节摘要:本章是全册的复盘室——用一台转账手术把事务纪律讲透,用一份坏味道清单收拢代码规范与单元测试,用慢查询与大结果集两个病例讲性能优化,用一张排错决策树归档全册高频故障,最后站在 3.5 之后的版本与生态坐标上,看清 MyBatis 的现在与去向。读完你带走的不是零散技巧,而是一整套可复用的工程纪律。 一条主线 前五章把手术台从搭台、入参、出参、缝合到监护走了一遍。复盘室要回答的是另一类问题:手术做错了怎么止损(事务),怎么保证每台手术都按标准做(规范与测试),手术太慢怎么排查(性能),出了事故怎么定位(排错),以及这张手术台未来还值不值得投入(演进)。 本章的主线病例是一个小模块:账户转账。6.

第 6 章 · 手术复盘:事务、规范、性能与演进

章节摘要:本章是全册的复盘室——用一台转账手术把事务纪律讲透,用一份坏味道清单收拢代码规范与单元测试,用慢查询与大结果集两个病例讲性能优化,用一张排错决策树归档全册高频故障,最后站在 3.5 之后的版本与生态坐标上,看清 MyBatis 的现在与去向。读完你带走的不是零散技巧,而是一整套可复用的工程纪律。

一条主线

前五章把手术台从搭台、入参、出参、缝合到监护走了一遍。复盘室要回答的是另一类问题:手术做错了怎么止损(事务),怎么保证每台手术都按标准做(规范与测试),手术太慢怎么排查(性能),出了事故怎么定位(排错),以及这张手术台未来还值不值得投入(演进)。

本章的主线病例是一个小模块:账户转账。6.1 从"两步更新必须同生共死"出发,讲手动事务的 commit 与 rollback,再对照 Spring 声明式事务的写法差异;6.2 用一份真实项目里捞出来的坏味道清单(select 星号、超长 XML、无命名规范、无测试)逐条给出改法,并把 H2 内存库测试的完整套路交给你;6.3 处理两类性能病例——关联查询的 N 加一与几十万行的报表导出;6.4 把全册踩过的坑编成一张从报错信息出发的决策树;6.5 收尾于版本新特性与生态坐标。

复盘室的工作流

一句金句:事务管的是"要么都做要么都不做",规范管的是"每台手术一个做法",性能管的是"别让数据库陪跑"——三件事都做对,排错章节才会越来越薄。

沿途站点

  • 6.1 事务管理:从手动提交到声明式:openSession 的 autoCommit 语义、转账案例的完整事务代码、异常回滚的时机、Spring 注解式事务的对照与常见失效场景。
  • 6.2 代码规范与单元测试:Mapper 命名与 XML 书写规范、坏味道对照表、H2 内存库加建表脚本的测试骨架、断言与数据清理。
  • 6.3 性能优化:慢查询与批量执行:N 加一的定位与消灭、列裁剪、批量执行器的收益实测口径、fetchSize 与游标处理大结果集、连接池参数。
  • 6.4 常见问题与排错:从 BindingException 到结果为 null 的高频故障表、按报错信息走的排错决策树、日志与插件的取证手段。
  • 6.5 新特性与生态演进:3.5 系列值得用的改进、与 MyBatis-Plus、PageHelper 等周边的坐标关系、与 jOOQ、Spring Data JDBC 的定位差异与选型建议。

拐点与结论

本章的转折不在新知识,而在视角:前五章是"怎么把功能做出来",这一章是"怎么让它活在生产环境"。6.1 会纠正一个普遍误解——autoCommit 打开不是"省了 commit 这行代码",而是把每条语句变成独立事务,转账的两步更新从此可能只做一半;6.3 会推翻另一个直觉——批量优化先看执行次数与网络往返,再谈语句本身。

最后一个转折在 6.5:MyBatis-Plus 这类增强库没有取代 MyBatis,而是架在它上面。分清"框架本体、生态增强、替代路线"三层,技术选型时才不会被名词带走。

读完你应该

  1. 能用纯 MyBatis 写出带异常回滚的事务代码,并说出 Spring 环境下这段代码会退化成什么样
  2. 能列出至少五条 Mapper 层的坏味道与对应改法,说出 select 星号在结果映射端的三宗罪
  3. 能搭一套基于 H2 内存库的 Mapper 测试,并解释为什么不建议直接连测试库的公共数据
  4. 能用日志或插件取证定位一次 N 加一,并给出 join、批量、缓存三种解法及取舍
  5. 能对着"绑定异常、参数找不到、结果为 null、分页错位"四类故障直接说出排查顺序
  6. 能说清 MyBatis 与 MyBatis-Plus 的关系边界,给自己的项目场景做出有依据的选型

下一章的接力

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


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