🎯 今日核心问题
- 让 AI 生成 CRUD 的正确姿势是什么?
- 如何保证生成的代码符合你的项目规范?
📖 精读提纲
【一】核心概念
CRUD 生成 = 需求描述 + 规范约束 + 代码验证。三者缺一,生成质量就会打折。很多人失望于 AI 生成的代码"不能用",根本原因是没说清楚约束条件。
【二】关键原理
一个好的 CRUD 生成 Prompt 必须包含:
- 实体字段:字段名、类型、含义、约束
- 业务规则:哪些字段唯一、哪些关联其他表、什么操作触发什么逻辑
- 技术栈:Spring Boot 版本、ORM 框架(MyBatis/MyBatis Plus/JPA)、数据库
- 代码风格:三层架构规范、返回值格式、异常处理方式
【三】实战应用
完整 Prompt 示例:
请用以下技术栈生成商品管理模块的完整 CRUD 代码:
技术栈:Spring Boot 3.2 + MyBatis Plus 3.5 + MySQL
实体字段:
- id: Long, 主键, 自增
- name: String, 商品名称, 不能为空, 同一店铺内唯一
- price: BigDecimal, 价格, 必须大于0
- stock: Integer, 库存, 不能为负数
- categoryId: Long, 分类ID, 外键
- status: Integer, 状态(0下架/1上架), 默认1
- createTime: LocalDateTime, 创建时间, 自动填充
业务规则:
1. 新增时校验同店铺内商品名称唯一
2. 修改库存时不能直接设为负数,需要加减操作
3. 支持按分类、状态、名称模糊搜索,分页返回
请生成:
1. Product 实体类(含 @TableName、Lombok 注解)
2. ProductMapper 接口(含分页查询方法)
3. ProductService 接口 + ProductServiceImpl(含参数校验)
4. ProductController(统一返回 Result<T>,含 @Valid 注解)
5. ProductDTO(新增/修改用)和 ProductVO(查询返回用)
代码风格:异常统一抛出 BusinessException,不在 catch 里吞掉。
【四】常见误区
- ❌ 只说"帮我生成用户 CRUD",没有字段和规则 → 生成的代码几乎不能用
- ❌ 不说技术栈版本 → 可能生成旧版 API(如 MyBatis 而非 MyBatis Plus)
- ❌ 不验证生成结果就直接合入代码 → 埋雷
- ✅ 正确做法:给完整约束,生成后逐方法过一遍,跑单测确认
💡 今日金句
给 AI 的约束越精确,生成的代码越接近生产级别。模糊的需求只能得到模糊的代码。
✏️ 今日练习
选择你当前项目里需要新增的一个模块(或用练习模块),按上面的 Prompt 模板补全信息,让 AI 生成完整 CRUD,然后:
- 检查实体类字段和约束是否正确
- 检查 Service 层的业务规则有没有遗漏
- 让 AI 补充单测
🔖 明日预告
明天(第7天):让 AI 帮你补单元测试——掌握让 AI 生成高质量单测的技巧,而不只是 happy path。