java-gas.md 3.0 KB


name: crud-by-controller-gas

description: 基于 tofly-gas 项目现有 Controller 风格快速生成标准 CRUD 代码(Controller/Service/Mapper/Mapper.xml),并强制约束 SQL 只能写在 *Mapper.xml 中。用户提到生成 CRUD、仿照控制器写接口、补全增删改查、统一接口风格或规范 MyBatis SQL 放置位置时使用。

CRUD 生成 Skill(tofly-gas 场景)

适用场景

当用户要求“参考某个 Controller 生成 CRUD”时,按此 Skill 执行。
默认参考 tofly-gas 的 Java 微服务风格,保持原有接口与分层模式一致。

公共 Skill 引用

  • POM 工作流:language/java/pom-factory-skill.mdMaven 治理条文rules/java-pom-governance.mdc
  • Java CRUD 通用规范rules/java-crud-common.mdc
  • 当任务涉及 pom.xml、多模块依赖版本治理、dependencyManagement/pluginManagementsystemPath 清理时,必须同时应用 pom-factory-skilljava-pom-governance
  • 当 CRUD 生成与 POM 治理同时出现时,Controller/Service/Mapper 代码规范遵循本文件,Maven 构建与依赖规范遵循 pom-factory-skill + java-pom-governance
  • 当本文件与 java-crud-common 有冲突时:本文件的项目差异规则优先。

tofly-gas 专项约束

  • 分层、SQL 仅 XML、Mapper 签名与 namespace、禁止 select *、动态 SQL 标签:一律遵循 rules/java-crud-common.mdc
  • 接口契约:返回体统一使用项目既有响应对象(通常为 ResultRespone 或项目统一结果类型)。
  • CRUD 路径与方法GET /pageGET /{id}POST /PUT /DELETE /{id}DELETE /deleteByIds;查询 @ModelAttribute 承接查询对象,写接口 @RequestBody;主键参数命名与同模块保持一致。

生成步骤

  1. 识别实体信息
  2. 确认实体名、主键字段、主键类型、表名。
  3. 确认是否已有 Mapper/Service,避免重复创建。

  4. 生成 Controller

  5. 路由、方法命名、参数风格与同模块既有 Controller 保持一致。

  6. 接口最小集合:分页、详情、新增、修改、单删、批删。

  7. 禁止在 Controller 编写业务处理逻辑,复杂处理下沉到 Service。

  8. 生成 Service 层

  9. Service 接口继承 MyBatis-Plus IService<Entity>(若项目已有该模式)。

  10. ServiceImpl 继承 ServiceImpl<Mapper, Entity> 并实现接口。

  11. 不写任何 SQL。

  12. 生成 Mapper 层

  13. Mapper 接口继承 BaseMapper<Entity>

  14. 如需自定义查询,仅声明方法签名。

  15. 生成 *Mapper.xml

  16. 创建或补充对应 XML 文件。

  17. 所有自定义 SQL 都写在 XML 中。

  18. 自检

  19. rules/java-crud-common.mdc 自检。

  20. 检查是否出现注解 SQL。

  21. 检查 Controller 是否包含业务逻辑代码(若有则迁移到 Service)。

  22. 检查 XML namespace 与方法 id 是否一一对应。