Prompts-MCP 686 skills · ai / design / design-pattern / framework / fundamentals / habit / lang / tech-selection /mcp/sse
framework framework/mybatis/index.md medium

framework-mybatis-index

MyBatis + Mapper XML 设计规范 6 项 — 接口约定 / XML 设计 / 动态 SQL / 注入安全 / 分页 / N+1。Use when 写 Mapper 接口或 XML / 排查 SQL 注入与慢查询 / 评审 MyBatis 持久层 PR 时。

子项索引

子项 一句话
mybatis-mapper-interface skill MyBatis Mapper 接口规范 — @Mapper / @MapperScan 注册、方法名语义化、多参数加 @Param、返回类型约定
mybatis-xml-design skill MyBatis Mapper XML 设计 — namespace 对应接口全限定名、resultMap 显式映射不靠隐式驼峰、sql 片段 + include 复用列名
mybatis-dynamic-sql skill MyBatis 动态 SQL 标签 — if 条件拼接、where 自动去 AND/OR 前缀、foreach 批量插入与 IN、choose 多分支
mybatis-sql-injection-safety skill MyBatis 防 SQL 注入红线 — #{} 走预编译占位符,${} 是字符串拼接仅用于表名/列名等无法占位处且必须白名单校验
mybatis-pagination skill MyBatis 物理分页 — PageHelper.startPage 或 MyBatis-Plus IPage 下推 limit,禁 RowBounds 全查内存分页,count 查询单独优化
mybatis-n-plus-one skill MyBatis N+1 查询问题 — association/collection 嵌套查询的 fetchType、嵌套 resultMap 一次 join vs 多次查、批量查替代循环单查

MyBatis · 子项索引

MyBatis 持久层拆成 6 个独立决策点,按你正在做的事下钻:

你在做什么 进哪个
写 Mapper 接口(注解扫描、方法名、多参数、返回类型) mapper-interface
写 Mapper XML(namespace、resultMap、sql 片段复用) xml-design
写动态 SQL(条件拼接 / 批量 / 多分支) dynamic-sql
拼 SQL 时纠结用 #{} 还是 ${}(防注入) sql-injection-safety
做分页查询(物理分页 / count 优化) pagination
列表带关联数据、循环里反复查库(慢) n-plus-one