mybatis-plus-devlisted
Install: claude install-skill BaixuanZhu/skills
# MyBatis-Plus 开发助手
面向日常 Java 开发的 MyBatis-Plus 编码助手。推荐 **3.5.17**(3.5.x 最新线,2026),**3.5.x 全线适用**,3.4.x 大部分兼容(差异处已注明)。
采用**完全本地自包含**策略:所有知识沉淀于本地 `references/`,运行时不依赖任何外部文档站点。
## 版本与依赖(先判 SpringBoot 版本)
| SpringBoot | starter 坐标 |
|---|---|
| 2.x | `mybatis-plus-boot-starter` |
| 3.x | `mybatis-plus-spring-boot3-starter` |
| 4.x (^3.5.13) | `mybatis-plus-spring-boot4-starter` |
- **切勿**同时引入 `mybatis` / `mybatis-spring-boot-starter` / `mybatis-spring`,会与 MP 版本冲突。
- **分页必引** `mybatis-plus-jsqlparser`(自 v3.5.9 起 `PaginationInnerInterceptor` 已从核心拆分,单独成依赖;否则分页静默失效)。JDK8 项目用 `mybatis-plus-jsqlparser-4.9`。
## 第 0 步:依赖探测与激活分支(收到数据库访问类任务先做这一步)
任务涉及增删改查、分页、条件查询、Mapper/DAO/Service 层、实体映射、事务等编码——**即使用户没提 MyBatis-Plus**——先检索项目依赖(在 `pom.xml` / `build.gradle` 中搜 `mybatis-plus`、`mybatis`、`spring-boot-starter-data-jpa`、`hibernate`):
| 探测结果 | 动作 |
|---|---|
| 依赖含 `mybatis-plus-*` | 直接激活本技能,走下方流程 |
| 纯 MyBatis 原生(无 MP) | 按「部分适用」规则(仅 `10-xml.md` + `11-transaction.md`),同时**询问**用户是否引入 MyBatis-Plus(单表 CRUD 免写 SQL,与现有 XML 共存) |
| 无任何 ORM | **主动询问**用户是否引入 MyBatis-Plus;同意 → 按「版本与依赖」表 + `references/01-start.md` 引入后继续;拒绝 → 退出本技能,不再打扰 |
| 已使用 JPA / Hibernate | 告知不适用并退出,**不建议迁移** |
## 何时使用本技能
| 信号 | 判定 |
|------|------|
| Java/SpringBoot 项目中的 CRUD/分页/条件查询/Mapper 层/实体映射/事务任务(未指明框架) | 激活,先执行「第 0 步」依赖探测 |
| 依赖含 `mybatis-plus-*` / 代码 `extends BaseMapper` / `extends ServiceImpl` / 使用 Wrapper / `IService` / `saveBatch` / `selectPage` | 激活 |
| 提到 `@TableLogic` / `@TableField` / `@EnumValue` / `@Version` /