MyBatisPlus 全面学习路径
学习目录
第一部分:MyBatisPlus 基础
- MyBatisPlus 简介与核心特性
- 快速入门与环境搭建
- 核心功能:BaseMapper 与 CRUD 接口
- 条件构造器(Wrapper)详解
- ActiveRecord 模式
- 主键策略与通用枚举
第二部分:MyBatisPlus 进阶
- 代码生成器(AutoGenerator)
- 自定义 SQL 与 SQL 注入器
- 分页插件与自定义分页
- 性能分析插件与执行 SQL 分析
- 乐观锁插件实现
- 多租户 SQL 解析器
- 动态表名 SQL 解析器
第三部分:MyBatisPlus 高级特性
- 逻辑删除实现
- 自动填充功能
- 多数据源支持
- MyBatisPlus 与 Spring Boot 深度整合
- MyBatisPlus 与 Spring Cloud 整合
- MyBatisPlus 扩展点与自定义全局操作
第四部分:MyBatisPlus 实战应用
- 复杂查询构建最佳实践
- 批量操作性能优化
- 多表关联查询方案
- 事务管理策略
- 与缓存框架整合
- 企业级应用架构设计
第五部分:MyBatisPlus 源码解析
- 核心架构与执行流程
- SQL 注入原理分析
- 插件机制实现原理
- 条件构造器实现原理
- 扩展点设计与实现
详细学习内容
第一部分:MyBatisPlus 基础
1. MyBatisPlus 简介与核心特性
- MyBatisPlus 与 MyBatis 的关系
- 核心特性概述:无侵入、损耗小、强大 CRUD、多种策略等
- 适用场景分析
2. 快速入门与环境搭建
- Spring Boot 整合 MyBatisPlus
- 基础依赖配置
- 第一个 MyBatisPlus 示例
- 配置日志打印
3. 核心功能:BaseMapper 与 CRUD 接口
- BaseMapper 内置方法详解
- 插入操作:insert vs insertBatch
- 删除操作:物理删除与逻辑删除
- 更新操作:updateById vs update
- 查询操作:selectById, selectBatchIds, selectByMap
- 分页查询基础
4. 条件构造器(Wrapper)详解
- QueryWrapper 基础使用
- LambdaQueryWrapper 类型安全写法
- 条件构造方法:eq, ne, gt, ge, lt, le, between, like 等
- 嵌套条件:and, or
- 条件排序:orderBy, orderByDesc
- 选择字段:select
5. ActiveRecord 模式
- ActiveRecord 模式介绍
- 实体类继承 Model
- ActiveRecord 的 CRUD 操作
- 与 BaseMapper 模式对比
6. 主键策略与通用枚举
- 主键策略:AUTO, NONE, INPUT, ASSIGN_ID, ASSIGN_UUID
- 自定义主键生成策略
- 通用枚举处理
- 类型处理器配置
第二部分:MyBatisPlus 进阶
1. 代码生成器(AutoGenerator)
- 代码生成器配置详解
- 全局配置、数据源配置
- 包配置、策略配置
- 自定义模板生成
- 多模块代码生成
2. 自定义 SQL 与 SQL 注入器
- 自定义 SQL 的几种方式
- @Select, @Update 等注解使用
- XML 映射文件使用
- 自定义 SQL 注入器实现
- 扩展 BaseMapper 功能
3. 分页插件与自定义分页
- 分页插件配置
- Page 对象使用
- IPage 接口详解
- 自定义分页 SQL 处理
- 多表关联分页方案
4. 性能分析插件与执行 SQL 分析
- 性能分析插件配置
- SQL 执行效率监控
- 慢 SQL 定位与优化
- 格式化 SQL 输出
5. 乐观锁插件实现
- 乐观锁原理介绍
- @Version 注解使用
- 乐观锁插件配置
- 并发更新测试案例
- 乐观锁与悲观锁对比
6. 多租户 SQL 解析器
- 多租户概念与实现方案
- TenantSqlParser 配置
- 租户 ID 上下文管理
- 排除特定表的租户过滤
- 自定义租户处理器
7. 动态表名 SQL 解析器
- 动态表名使用场景
- 动态表名解析器配置
- 基于参数的表名动态替换
- 分表分库初步方案
第三部分:MyBatisPlus 高级特性
1. 逻辑删除实现
- 逻辑删除 vs 物理删除
- @TableLogic 注解配置
- 全局逻辑删除配置
- 逻辑删除的查询影响
- 恢复逻辑删除数据
2. 自动填充功能
- @TableField 自动填充配置
- 实现 MetaObjectHandler
- 插入时自动填充
- 更新时自动填充
- 自定义填充策略
3. 多数据源支持
- 动态数据源配置
- 多数据源事务管理
- 读写分离实现
- 多数据源下的分页处理
- 多数据源路由策略
4. MyBatisPlus 与 Spring Boot 深度整合
- 自动配置原理分析
- 自定义 MyBatisPlus 配置
- 多环境配置管理
- 与 Spring Boot Actuator 集成
- 健康检查与指标监控
5. MyBatisPlus 与 Spring Cloud 整合
- 分布式环境下的主键生成
- 微服务间的数据一致性
- 与 Spring Cloud Config 整合
- 与 Nacos 配置中心整合
- 分布式事务初步方案
6. MyBatisPlus 扩展点与自定义全局操作
- ISqlInjector 自定义注入
- 自定义全局操作方法
- 拦截器原理与实现
- 执行 SQL 前/后处理
- 结果集自定义处理
第四部分:MyBatisPlus 实战应用
1. 复杂查询构建最佳实践
- 多条件动态查询构建
- 子查询实现方案
- 嵌套查询处理
- 查询性能优化建议
- 避免 N+1 查询问题
2. 批量操作性能优化
- 批量插入性能对比
- 批量更新实现方案
- 流式查询处理大数据
- JDBC 批处理配置
- 事务与批量操作
3. 多表关联查询方案
- 一对一关联查询
- 一对多关联查询
- 多对多关联处理
- 嵌套结果 vs 嵌套查询
- 自定义结果集映射
4. 事务管理策略
- 声明式事务管理
- 编程式事务控制
- 事务传播行为
- 事务隔离级别
- 分布式事务方案
5. 与缓存框架整合
- 一级缓存与二级缓存
- 与 Ehcache 整合
- 与 Redis 缓存整合
- 缓存一致性保障
- 缓存击穿解决方案
6. 企业级应用架构设计
- DAO 层设计规范
- Service 层封装策略
- DTO 与 VO 转换
- 领域模型设计
- 模块化分层架构
第五部分:MyBatisPlus 源码解析
1. 核心架构与执行流程
- MyBatisPlus 整体架构
- SQL 执行核心流程
- 与 MyBatis 的集成点
- 配置加载过程
- 扩展点体系结构
2. SQL 注入原理分析
- Mapper 接口代理机制
- SQL 注入器工作流程
- 方法名与 SQL 的映射
- 动态 SQL 生成原理
- SQL 语句重写机制
3. 插件机制实现原理
- MyBatis 插件机制回顾
- 拦截器链构建过程
- 分页插件实现分析
- 乐观锁插件实现分析
- 自定义插件开发指南
4. 条件构造器实现原理
- AbstractWrapper 核心设计
- 条件表达式解析
- SQL 片段生成算法
- Lambda 表达式处理
- 参数绑定机制
5. 扩展点设计与实现
- 关键扩展接口分析
- 自定义主键生成器
- 自定义类型处理器
- 元对象处理器扩展
- SQL 解析器扩展