别只停留在能跑通增删改查

很多转岗或速成出来的开发者,对 MyBatis 的认知基本停留在配好映射文件、写对接口方法、查出个列表就算完事。一旦遇到复杂的业务表关联,或者排查线上慢查询,就开始靠瞎试。这门课解决的就是这种“只会用、不懂原理”的能力缺口。它不讲基础概念科普,重点在于把返回值处理、动态标签拼接、多表关联映射以及缓存机制这些日常开发里最容易踩坑的地方掰开揉碎。如果你连基本的 XML 映射文件结构都看不懂,建议先去补足 JDBC 和 Maven 基础;但如果你已经能独立写简单的增删改查,却在复杂查询和参数传递上总是卡壳,这门课就是用来给你补这块短板的。

按业务痛点分块补齐短板

建议不要从头到尾按顺序看,而是根据你当前手头项目的痛点跳着看。第一块先看返回值与参数处理部分,重点搞清楚返回单个实体、列表以及 Map 的区别,特别是带有多个参数的方法调用。很多人在接口传参时完全靠运气,搞不懂 @Param 注解到底什么时候必须加,看完这块就能彻底理清参数绑定的底层逻辑。第二块直奔动态 SQL 和高级结果集映射,这是这门课的核心价值。动态 SQL 的各种标签如何拼接、多对一和一对多关联映射的嵌套查询与联合查询有什么区别、为什么会引发 N+1 问题,这些是检验一个后端是否真懂 MyBatis 的试金石。第三块看逆向工程与插件机制,搞懂自动生成代码工具能帮你省去多少写样板代码的时间,以及分页插件是如何拦截 SQL 语句进行改写的。最后必须啃下缓存章节,搞清楚一级缓存和二级缓存的作用域与生命周期,明白为什么在 Spring 环境下直接修改数据容易导致脏读。资料里的代码示例不要只看不动,必须自己在本地建表跑通,尝试把联合查询改成嵌套查询,再对比打印出的 SQL 日志,观察底层执行差异。

看完能独立解决什么问题

学完这门课,你应该能脱离任何教程,独立设计一套合理的数据库访问层。拿到复杂业务需求时,能迅速判断是用单表动态 SQL 拼接,还是用多表关联结果映射,并且清楚不同写法对数据库造成的性能开销。当业务报错参数绑定时,你能直接定位到映射文件中参数引用的拼写错误;当遇到接口响应极慢时,你能通过分析映射关系排查出是不是触发了缓存失效或者大量冗余查询。别假装这些高级特性平时用不到,等真正遇到线上性能瓶颈时,这些恰恰是保命的基本功。配套的练习重点是多表关联和动态条件查询,把资料里的示例当成需求文档,自己改写标签组合,验证边界情况下的 SQL 生成结果。把这几块吃透,你的 MyBatis 基本功才算真正补齐,不再是个只会复制粘贴映射文件的工具人。

课程目录

1 mybatis介绍和配置 (58:44)
2 基本操作 (27:02)
3 返回值是User的操作 (05:33)
4 返回值是list的操作 (04:08)
5 返回值是ListMap的操作 (07:07)
6 复习 (08:59)
7 实现返回值是map (11:29)
8 带有参数的方法 (25:56)
9 主键自动生成 (05:19)
10 动态sql (37:50)
11 补充 (03:22)
12 高级结果集关联映射多对一 (34:20)
13 复习 (09:13)
14 注解 (20:15)
15 属性文件的引用 (05:10)
16 关联的嵌套查询多对一 (23:52)
17 集合映射一对多 (14:17)
18 MyBatisGenerator (31:59)
19 分页插件配置 (21:27)
20 mybatis缓存 (34:42)
21 复习mybatis (08:06)