首页 文章 精选 留言 我的

精选列表

搜索[栈],共10000篇文章
优秀的个人博客,低调大师

JeecgBoot 低代码 AI Skills 代码生成实战:用自然语言驱动全栈 CRUD 开发

>JeecgBoot AI 专题研究* JeecgBoot 低代码 AI 代码生成 Skills 深度解析与实战指南 前言:当代码生成遇上 AI 传统的代码生成器,本质上是 "模板填充工具"—— 你先建好数据库表,配好字段类型,然后点击生成按钮,得到一堆半成品代码。这个流程存在几个痛点:必须先手动建表、字段控件需要逐个配置、字典关联要自己查找指定、生成后还得手动搬运文件到正确目录。 JeecgBoot 低代码平台最近推出的jeecg-codegenSkills,彻底改变了这个局面。它基于 Claude Code 的 AI 能力,让你用一句自然语言就能完成从需求描述到可运行代码的全链路生成。不是简单的模板渲染,而是真正理解业务语义的智能代码生成。 本文将深入剖析这个 AI 代码生成 Skills 的核心能力、使用方法和实战技巧,帮助你快速上手这种全新的开发范式。 下载地址 skills 地址:https://github.com/jeecgboot/skills 与传统代码生成器相比,AI 到底强在哪? 在正式进入实战之前,有必要先说清楚 AI 代码生成和传统代码生成器的本质区别。很多人可能会觉得 "不就是换了个触发方式吗?"—— 实际上远不止于此。 无需预建表结构 传统方式要求你先在数据库里把表建好,字段名、类型、长度都得提前确定。而 JeecgBoot 低代码的 AI 代码生成只需要你用自然语言描述业务需求,AI 会自动推导出完整的表结构 —— 包括字段名、数据类型、长度、前端控件类型等。 当然,如果你已经有了现成的数据库表,它同样支持直接基于已有表生成代码,兼容传统工作流。 模块级批量生成 传统代码生成器通常是逐表操作 —— 选一张表,配一次参数,生成一组文件。如果一个业务模块涉及 5 张表,你就得重复 5 次。AI 代码生成支持一次性描述整个模块的需求,批量生成所有表的全套代码。 字典智能匹配 这是一个特别实用的能力。AI 会自动读取系统中已有的字典数据(sys_dict+sys_dict_item),为字段智能匹配合适的字典编码。比如你描述了一个 "订单状态" 字段,AI 会自动找到系统中的order_status字典并关联上,省去了手动查找字典编码的繁琐步骤。 代码自动归位 生成的代码文件会自动放到项目中正确的目录位置 —— 后端 Java 代码、前端 Vue 组件、Flyway 数据库迁移脚本,各归各位。不需要手动复制粘贴文件。 增量修改能力 传统代码生成器是 "一次性的"—— 生成完如果你改了代码,想加个字段就得重新生成覆盖。AI 代码生成支持精确的增量修改:加字段、删字段、改字段类型,AI 会定位到所有相关文件中的具体位置,只改动必要的部分,不影响你已经手动修改过的其他代码。 快速上手:从触发到生成 如何触发代码生成 在 Claude Code 对话中,只需在描述中包含以下任意关键词,Skills 就会自动触发: 代码生成 / 生成代码 / 创建模块 / 新增功能 / 建表 / 加字段 / 增加字段 / 新增字段 / 修改字段 / 删除字段 最简用法:一句话生成 最快的方式就是直接用一句话描述你想要的功能: 帮我生成一个商品管理模块,包含商品名称、价格、库存、状态、图片、描述 AI 会自动完成以下推导: 表名:biz_goods 价格 →decimal(10,2)/BigDecimal/InputNumber 库存 →int/Integer/InputNumber 状态 →varchar(10)/String/JDictSelectTag(并尝试匹配已有字典) 图片 →varchar(1000)/String/JImageUpload 描述 →text/String/InputTextArea 精确控制:指定表名和字典 如果你对表名、字段细节有明确要求,可以在描述中具体指定: 创建一个订单管理功能: - 表名 biz_order - 字段:订单编号、客户名称、下单日期、金额、状态(待付款/已付款/已发货/已完成)、备注 - 状态用字典 order_status AI 会优先使用你明确指定的值,只对未指定的部分进行智能推导。 六大实战场景详解 场景一:树形结构表 当你描述中出现 "分类"、"层级"、"树"、"上下级" 等关键词时,AI 会自动识别为树表模式: 建一个部门分类的树表,包含分类名称和分类编码 树表模式在单表基础上自动增加pid(父节点 ID)和has_child(是否有子节点)字段,后端 Controller 额外生成rootList、childList、getChildListBatch等树形数据接口,前端页面也会自动适配树形展示。 场景二:一对多(主子表) 提到 "主子表"、"明细"、"一对多" 等关键词,AI 自动进入一对多模式: 生成一个采购单模块,主表是采购单(单号、供应商、日期、总金额), 子表是采购明细(商品名、数量、单价、小计) 一对多模式会生成子表完整的 Entity / Mapper / Service 各一套,主表 Service 包含联合保存 / 更新 / 删除逻辑,前端通过 Tab 页展示子表数据。 场景三:指定后端模块 如果你的项目有多个后端模块,可以明确指定代码生成到哪个模块: 在 jeecg-module-demo 模块下生成一个公告管理,包含标题、内容(富文本)、发布时间、状态 场景四:基于已有数据库表反向生成 如果数据库中已经存在表结构,直接给表名就行: 生成 tmp_tables 这个表的代码 AI 会自动连接数据库执行SHOW CREATE TABLE,解析出完整的字段信息(类型、注释、主键策略、是否自增等),然后生成与表结构完全匹配的代码。无需重复描述字段。 场景五:增量修改已有模块 这是 AI 代码生成最强大的能力之一 —— 对已生成的模块进行精确的增量修改: 加字段: 给 tmp_tables 增加两个字段:排序号和状态(启用/停用) 改字段: 把商品管理的价格字段从 int 改成 decimal 删字段: 删除商品管理的描述字段 AI 会自动定位所有相关文件(Entity.java、data.ts、Form.vue 等),在每个文件的正确位置执行增删改操作,并生成对应的ALTER TABLEFlyway 迁移 SQL。 场景六:批量模块生成 一次性描述多个功能点,AI 统一生成整个业务模块的代码,覆盖多张表和多个功能。 交互流程解析:每一步都可控 JeecgBoot 低代码的 AI 代码生成采用 "确认制"—— 每一步都会展示摘要等你确认,不会跳过确认直接写文件。 全量生成的五步流程 第一步:需求解析。AI 分析你的描述,判断是新建表还是基于已有表。 第二步:参数确认。AI 会询问四个配置项(都有合理的默认值,直接说 "确认" 即可跳过): 后端模块 — 默认jeecg-module-system/jeecg-system-biz 前端风格 —vue3(封装风格)或vue3Native(原生风格) 前端目录 — 默认按entityPackage值 是否读取系统字典 — 默认开启,自动匹配 第三步:结构预览。展示完整的表结构摘要,包括每个字段的类型、控件、匹配到的字典等,确认无误后继续。 第四步:代码生成。自动生成全部文件并写入项目对应目录。 第五步:结果输出。输出生成的文件清单和后续操作说明。 增量修改的精确流程 增量修改同样遵循确认制:先扫描已有代码文件 → 展示每个文件的具体变更内容 → 确认后再执行修改。这样你可以清楚地知道 AI 要改哪些文件的哪些位置。 生成产物一览 单表模式生成 11 个文件 类别 文件 说明 后端 Entity.java 实体类,含 MyBatis-Plus / AutoPoi / Dict 注解 Controller.java REST 控制器,继承 JeecgController,含权限注解 IService.java Service 接口 ServiceImpl.java Service 实现 Mapper.java MyBatis Mapper 接口 Mapper.xml MyBatis XML 映射 前端 *.api.ts API 接口定义(list/save/edit/delete/export/import) *.data.ts 列定义 + 查询表单 + 编辑表单 Schema *List.vue 列表页面(表格 + 查询 + 操作按钮) *Modal.vue 编辑弹窗 *Form.vue 表单组件(仅 vue3Native 风格) SQL V*__.sql Flyway 迁移:建表 DDL + 菜单 + 7 个按钮权限 + 角色授权 两种前端风格如何选择 JeecgBoot 低代码的 AI 代码生成提供两种前端代码风格,满足不同场景需求: 维度 vue3 封装风格 vue3Native 原生风格 表单实现 BasicForm+ FormSchema 配置驱动 a-form+a-form-item模板直写 弹窗实现 BasicModal+useModalHook JModal+ref+defineExpose 表格实现 BasicTable+useTable+formConfig BasicTable+ 手写查询表单区域 核心优势 代码量少,配置化,统一风格 灵活度高,可深度定制交互 适合场景 标准 CRUD 页面,快速出活 需要复杂交互或自定义布局的场景 实战建议:如果你的页面是常规的增删改查,选vue3封装风格效率最高;如果页面有较多定制化交互需求(比如联动逻辑、动态表单、自定义布局等),选vue3Native获得更大的灵活空间。 智能字段推导:AI 如何理解你的业务语义 这是 AI 代码生成最 "聪明" 的部分 —— 它能根据字段名称中的语义关键词,自动推导出合适的数据库类型、Java 类型和前端控件: 语义关键词 数据库类型 Java 类型 前端控件 名称 / 标题 / 编码 varchar(100) String Input 金额 / 价格 / 费用 decimal(10,2) BigDecimal InputNumber 数量 / 个数 int Integer InputNumber 状态 / 类型 / 级别 varchar(10) String JDictSelectTag 是否 / 开关 varchar(2) String Switch 日期 / 生日 date Date DatePicker 备注 / 描述 / 说明 text String InputTextArea 内容 / 富文本 text String JEditor 图片 / 头像 / 照片 varchar(1000) String JImageUpload 文件 / 附件 varchar(1000) String JUpload 用户 / 负责人 varchar(32) String JSelectUserByDept 部门 / 组织 varchar(32) String JSelectDept 当然,AI 的推导不是 "一刀切" 的 —— 如果你在描述中明确指定了字段类型,AI 会优先采用你的指定。智能推导只是兜底策略,让你省去那些显而易见的配置工作。 字典智能匹配的工作机制 字典匹配是按优先级逐层匹配的: 用户明确指定:你说了 " 状态用字典order_status",直接用 字段名精确匹配:字段名status恰好与某个字典编码status一致 语义关键词匹配:字段注释含 "状态",搜索名称中含 "状态" 的字典 不匹配时回退:找不到合适字典就当普通 Input 处理,不强行关联 匹配结果会在表结构摘要中展示出来,你可以在确认前修改或取消任何字典关联。 效果示例:假设系统中已有字典order_status(待付款 = 0, 已付款 = 1, 已完成 = 2),当你描述字段 "订单状态" 时,AI 会自动在 Entity 上添加@Dict(dicCode = "order_status")注解,前端列定义使用_dictText后缀字段,表单控件自动切换为字典选择组件。 主键策略自适应 对于已有表,AI 会根据 DDL 中的主键定义自动选择正确的 MyBatis-Plus 主键策略: 表 DDL 中的主键定义 Java 类型 MyBatis-Plus 注解 int AUTO_INCREMENT Integer @TableId(type = IdType.AUTO) bigint AUTO_INCREMENT Long @TableId(type = IdType.AUTO) varchar(36)无自增 String @TableId(type = IdType.ASSIGN_ID) bigint无自增 Long @TableId(type = IdType.ASSIGN_ID) 新建表时默认使用 JeecgBoot 标准的varchar(36) + ASSIGN_ID策略。 Flyway 版本号自动管理 每次生成或增量修改都会产出 Flyway SQL 文件,版本号自动管理,避免冲突: 命名格式:V{YYYYMMDD}_{序号}__{描述}.sql 如果当天已有V20260311_1__xxx.sql,新文件自动编号为V20260311_2__xxx.sql 菜单 SQL 中的 ID 使用 13 位毫秒级时间戳,确保全局唯一 生成的 SQL 文件位于jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/,重启后端时 Flyway 自动执行,或者你也可以手动执行。 生成后只需三步即可使用 重启后端:Flyway 自动执行建表和菜单 SQL 前端热更新:开发服务器自动识别新文件,无需重启 打开浏览器:新菜单已自动添加并授权给 admin 角色,登录即可使用 整个过程从描述需求到功能可用,通常只需要几分钟。 实战注意事项 不会跳过确认直接写文件—— 每次生成或修改都会先展示摘要,确认后才执行 增量修改只改必要位置—— 不会覆盖你手动修改过的其他代码 权限编码自动生成—— 格式为{entityPackage}:{tableName}:add/edit/delete等 7 个操作 后端模块不存在时会提示——AI 不会盲目生成到不存在的 Maven 模块中 生成的代码没有框架锁定—— 和手写代码完全一样,可以随意二次修改 字典匹配可关闭—— 不想自动匹配时在参数确认步骤选择 "否" 总结 JeecgBoot 低代码的 AI 代码生成 Skills 代表了一种全新的开发范式 —— 从 "先建表后生成" 进化到 "用自然语言描述需求,AI 端到端交付可运行代码"。它不仅仅是提升了代码生成的效率,更重要的是降低了使用门槛:你不需要记住表结构设计规范、字段命名约定、字典编码对照表,这些 "知识负担" 都被 AI 承接了。 对于 JeecgBoot 低代码平台的开发者来说,这意味着你可以把更多精力放在业务逻辑和用户体验上,而不是在模板代码的搬运和配置上消耗时间。 本文为 JeecgBoot AI 专题研究系列文章。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册