一句话生成整套业务模块:JeecgBoot AI Skill 在 Claude Code 里的实战玩法

2026-05-19 34 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:9 分钟

低代码平台做到"拖拽生成页面"已经不新鲜了,但把建表、Maven 模块、前后端代码、菜单权限一口气全甩给 AI——这步子迈得够大。JeecgBoot 最新推出的 jeecg-codegen AI Skill,直接在 Claude Code 里接收一句业务描述,然后从数据库表结构到 Vue3 页面全自动吐出来,开发者只需要验收成果。

下面拆开看它怎么跑、产出什么、以及上手时要注意的坑。

从一句话到全套代码,中间发生了什么

核心流程可以简化成四步:

  1. 需求解析——Claude Code 收到你的自然语言描述,拆出实体字段、关系、业务语义。
  2. 表结构生成——输出建表 SQL(含字段类型、长度、注释、索引),并自动执行到目标数据库。
  3. 工程骨架生成——创建 Maven 子模块,按 JeecgBoot 的分层约定生成 Entity、Mapper、Service、Controller。
  4. 前端 + 权限生成——输出 Vue3 页面(列表、表单、详情),同时生成菜单权限 SQL,插入后台权限体系。

整个过程不需要手动建目录、写模板、配路由——AI Skill 把 JeecgBoot 的代码规范内化成了生成策略。

实战:在 Claude Code 里跑一次完整生成

前提是你已经装好 Claude Code CLI,并且 JeecgBoot 项目已拉到本地。下面直接演示一个"员工培训管理"模块的生成。

第一步:安装 jeecg-codegen AI Skill

在 Claude Code 的项目目录下,添加 Skill 配置:

# 进入 JeecgBoot 项目根目录
cd ~/projects/jeecgboot

# 在 Claude Code 中加载 jeecg-codegen skill
claude skill add jeecg-codegen

如果你的 Claude Code 版本不支持 skill add,可以手动把 Skill 的 Markdown 规则文件放到 .claude/skills/ 目录下,Claude Code 启动时会自动加载。

第二步:一句话描述需求

在 Claude Code 的交互窗口里直接输入:

帮我生成一个"员工培训管理"模块,包含培训课程表(课程名称、培训类型、讲师、开始时间、结束时间、状态)和培训记录表(关联课程ID、员工姓名、完成进度、评分),支持课程列表页、记录列表页,菜单挂在"人力资源"下。

Claude Code 会基于 Skill 规则,逐步输出以下内容——你可以逐段确认或调整。

第三步:验收生成产物

AI 会依次吐出这些文件,你只需要检查关键逻辑:

建表 SQL(自动执行)

-- 培训课程表
CREATE TABLE biz_training_course (
    id          VARCHAR(36)  PRIMARY KEY COMMENT '主键',
    course_name VARCHAR(200) NOT NULL    COMMENT '课程名称',
    train_type  VARCHAR(50)              COMMENT '培训类型',
    teacher     VARCHAR(100)             COMMENT '讲师',
    start_time  DATETIME                 COMMENT '开始时间',
    end_time    DATETIME                 COMMENT '结束时间',
    status      VARCHAR(20)  DEFAULT '0' COMMENT '状态(0未开始/1进行中/2已完成)',
    create_by   VARCHAR(50)              COMMENT '创建人',
    create_time DATETIME                 COMMENT '创建时间',
    update_by   VARCHAR(50)              COMMENT '更新人',
    update_time DATETIME                 COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='培训课程';

-- 培训记录表
CREATE TABLE biz_training_record (
    id          VARCHAR(36)  PRIMARY KEY COMMENT '主键',
    course_id   VARCHAR(36)  NOT NULL    COMMENT '关联课程ID',
    emp_name    VARCHAR(100) NOT NULL    COMMENT '员工姓名',
    progress    INT          DEFAULT 0   COMMENT '完成进度(%)',
    score       DECIMAL(5,2)             COMMENT '评分',
    create_by   VARCHAR(50)              COMMENT '创建人',
    create_time DATETIME                 COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='培训记录';

后端 Java——Entity 示例

@Data
@TableName("biz_training_course")
public class TrainingCourse {
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    private String courseName;
    private String trainType;
    private String teacher;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    private String status;
    private String createBy;
    private LocalDateTime createTime;
    private String updateBy;
    private LocalDateTime updateTime;
}

Mapper、Service、Controller 均按 JeecgBoot 标准分层生成,包含增删改查 + 导入导出接口,不需要手写。

前端 Vue3——列表页核心片段

<template>
  <!-- 培训课程列表页,JeecgBoot 标准列表模板 -->
  <BasicTable @register="registerTable">
    <template #tableAction>
      <a-button type="primary" @click="handleAdd">新增课程</a-button>
    </template>
  </BasicTable>
</template>

<script setup lang="ts">
import { BasicTable, useTable } from '/@/components/Table';
import { columns, searchFormSchema } from './course.data';
import { list, deleteById } from './course.api';

const [registerTable, { reload }] = useTable({
  columns,
  formConfig: { schemas: searchFormSchema },
  api: list,
  rowKey: 'id',
});
</script>

菜单权限 SQL

-- 菜单:人力资源 > 培训课程
INSERT INTO sys_permission (id, parent_id, name, url, component, menu_type, sort_no)
VALUES ('train_course_menu', 'hr_parent_id', '培训课程', '/hr/training/course',
        'hr/training/CourseList', 1, 1);

-- 菜单:人力资源 > 培训记录
INSERT INTO sys_permission (id, parent_id, name, url, component, menu_type, sort_no)
VALUES ('train_record_menu', 'hr_parent_id', '培训记录', '/hr/training/record',
        'hr/training/RecordList', 1, 2);

到这一步,启动后端、刷新前端,菜单和页面就已经挂上了。

生成结果不是终点——需要人工过检的几个点

AI Skill 把体力活干完了,但以下环节仍然需要开发者把关:

检查项 为什么不能省
字段长度与索引 AI 根据语义猜类型和长度,业务上可能有特殊要求(比如课程名称要 500 字、状态字段需要枚举校验)
关联关系与级联 两张表的 course_id 外键约束、删除级联策略,AI 默认不加物理外键,需要按团队规范补
权限粒度 生成的菜单权限是页面级,按钮级权限(如"仅管理员可删除课程")需要手动在 sys_permission 里追加
前端交互细节 列表页是标准模板,如果需要弹窗编辑、拖拽排序、图表统计,需要二次开发
业务校验逻辑 Service 层的 save 方法默认只做 CRUD,像"结束时间必须大于开始时间"这类校验要自己加

一句话生成解决的是"从 0 到 80%"的骨架搭建,剩下的 20% 是业务灵魂。

上手 Checklist

准备把 jeecg-codegen 用到项目里,建议按这个顺序走:

  1. 确认 JeecgBoot 版本——V2.0 及以上才支持该 Skill,旧版需要先升级。
  2. Claude Code 环境就绪——安装 CLI、配置 API Key、确保能访问项目目录。
  3. 数据库连接可用——Skill 会自动执行建表 SQL,目标库必须连通且有建表权限。
  4. 先跑一个简单模块试水——比如"字典管理"这种单表模块,验证全链路通畅后再上复杂多表业务。
  5. 生成后立刻跑一遍启动——前后端启动、菜单可见、列表可查,确认没有编译或路由报错。
  6. 把 AI 产出纳入 Git——不要手动改完就丢,先 commit 一版 AI 原始产出,再叠上自己的业务改动,方便回溯。

低代码 + AI 的组合,本质上是把"写代码"这件事的前端成本压到最低。JeecgBoot 这步走的方向是对的——不是替代开发者,而是让开发者把时间花在 AI 不会替你想的那些地方。


相关推荐