Agent Skills
返回列表
Xbatis 工程助手

Xbatis 工程助手

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-xbatis-skills。

技能介绍

解决什么问题

在使用 xbatis 开发时,常见的偏移并不是“语法不会写”,而是把其他 ORM 的习惯带进来:

  • 跳过 DAO 层,直接在 Service 或 Controller 里创建 QueryChain、UpdateChain。
  • 简单 CRUD 或常规列表页先写 XML,甚至手工拼接 where、count、limit。
  • 联表结果先查实体再逐个字段 copy 到 VO,忽略了 select(VO.class) 与结果映射能力。
  • 逻辑删除、多租户、乐观锁、审计时间等能力被重复手写,DAO 注入代码也在每个业务类里重复。

这份技能用于在新增代码、改造旧代码、审查 PR 时对齐 xbatis 的原生表达方式,而不是把它当成“另一个 MyBatis 封装”来用。

它如何工作

核心决策顺序固定为:

  1. 先判断能否直接使用 DAO、BasicMapper、内置 Mapper 方法。
  2. 再判断是否使用 queryChain()、updateChain()、insertChain()、deleteChain()、对象转条件、QO、Model 和结果映射。
  3. 最后才回退 SQL 模板、原生 SQL 或少量 XML。

按任务类型收敛实现方式:

  • 简单 CRUD:优先 getById、getValueById、DAO 基础方法;避免按 id 查询也默认走 Chain,或为基础增删改查写自定义 XML。
  • 列表 / 分页 / 条件查询:优先 queryChain()、paging(Pager)、条件对象转 where;只有搜索表单、关键词查询才优先 forSearch(true)。
  • 联表 / VO 查询:优先 .from(...) 明确主表、returnType(VO.class)、select(VO.class)、@Fetch、@PutEnumValue 和结果映射注解;避免手工 select 字段或查完实体再 copy。
  • 写入链:优先在 DAO 内使用 updateChain()、insertChain()、deleteChain(),最终以 execute() 收尾;单条先查后改优先 partialUpdate(...),并用 Model 收敛入参。
  • 复杂 SQL:先尝试 SQL 模板、动态 query、原生 SQL + 动态 where;只有极重报表、数据库语义很强或项目已有成熟 XML 时才回退 XML。
  • Mapper 组织:先确认单 Mapper 还是多 Mapper,再创建项目级 BaseDao;业务 DAO 接口继承 Dao,实现类继承 BaseDao,不要在业务 DAO 里重复 setMapper(...)。
  • POJO 约束:实体只放表字段;VO、QO、DTO、Model 不使用 @Table、@TableId 等实体注解;非数据库字段使用 @Ignore,审计字段优先使用动态默认值能力。

适用边界与注意点

适合使用:xbatis 实体、Mapper、DAO、Service 初始化,Spring Boot / Solon 接入,以及分页、联表、VO 映射、逻辑删除、多租户、乐观锁、动态默认值和代码审查。

不适合使用:纯 JPA / Hibernate 项目、不使用 xbatis 的普通 MyBatis 项目,或只做宣传介绍、安装教程的任务。

启用前必须先下载当前项目所用 starter 的源码,例如 xbatis/xbatis、xbatis/xbatis-spring-boot-parent 或 xbatis/xbatis-solon-plugin。生成类路径、类名、方法名、注解包名或泛型签名时,不能凭记忆猜测;应从本地源码和当前项目依赖中确认。references 只用于收敛规则,真实 API 以本地源码为准。

使用场景

  • 新增或修改 xbatis 实体、Mapper、DAO、Service,需要按框架原生风格落代码。
  • 实现分页列表、联表查询和 VO 返回,需要用 queryChain、select(VO.class) 或 @Fetch。
  • 接入逻辑删除、多租户、乐观锁和审计时间字段,避免在业务层重复手写条件。
  • 审查已有 xbatis 代码,判断是否绕过 DAO 直接创建 Chain 或过早回退 XML。

适合人员

  • 维护 xbatis 后端服务的 Java 工程师,需要统一 DAO、Mapper 和 Chain 写法。
  • 接入 Spring Boot 或 Solon 的开发者,需要确认 starter、Mapper 扫描和项目 BaseDao 配置。
  • 做 Code Review 的技术负责人,需要快速识别偏离 xbatis 习惯的 SQL 与分层问题。
  • 编写数据库访问层的成员,需要处理分页、联表、VO 映射和框架特性接入。