标签

MyBatis

03-MyBatis 分页:三种写法与一个真实项目的落地
分页有三种实现:手写LIMIT最可控但需自写count;MyBatis-Plus与PageHelper在拦截器层改写SQL并额外执行count;内存分页会把全量数据拉入内存,是事故源头。startPage未生效常因中间插入查询或处于异步线程。大表分页慢在count全扫与深分页offset,可用延迟关联缓解。MP 3.5.9后需单引mybatis-plus-jsqlparser;排序字段须白名单校验并设置maxLimit。项目只留一套分页插件,复杂查询须核对实际count SQL。
2026-10-20
|
1
|
0
|
0
02-MyBatis-Plus:把重复的 CRUD 收进框架
MyBatis-Plus在MyBatis上增强而非重写,替代单表CRUD、条件拼装、主键生成、字段填充和逻辑删除,不替代动态SQL、复杂映射、事务、缓存及索引优化。3.5.9起分页需额外引入jsqlparser,拦截器统一且分页最后;3.3.0起ID_WORKER改名ASSIGN_ID。Spring Boot 3须用对应starter。乐观锁更新返回0即失败,自动填充仅实体更新生效。可避开版本与配置坑。
2026-10-20
|
1
|
0
|
0
01-MyBatis 基础:从配置到动态 SQL 与两级缓存
文章说明 MyBatis 主要收走 JDBC 中连接管理、参数设置、结果集遍历与关闭等样板代码,但 SQL 仍需手写。结合 3.5.19 与新版 MySQL Connector/J,强调配置文件元素须按 DTD 顺序、Mapper 要注册、`#{}` 是预编译占位符而 `${}` 用于 SQL 结构且须白名单;同时梳理 SqlSessionFactory/SqlSession 生命周期、驼峰映射、动态 SQL、两级缓存及常见报错。读者可据此避开驱动类、时区、字段映射、注入和连接池耗尽等问题。
2026-10-20
|
2
|
0
|
0