代码生成相关表
引用文件
本文档引用的文件
- CodegenTableDO.java
- CodegenColumnDO.java
- CodegenEngine.java
- CodegenTemplateTypeEnum.java
- CodegenFrontTypeEnum.java
- CodegenSceneEnum.java
- CodegenCreateListReqVO.java
- ruoyi-vue-pro.sql(MySQL)
- ruoyi-vue-pro.sql(Oracle)
- ruoyi-vue-pro.sql(PostgreSQL)
- ruoyi-vue-pro.sql(SQLServer)
- ruoyi-vue-pro-dm8.sql(达梦)
- create_tables.sql(测试)
目录
简介
本文件聚焦于代码生成模块的表结构设计与实现,围绕“代码生成表(infra_codegen_table)”和“代码生成明细表(infra_codegen_column)”展开,详细说明关键字段定义、数据类型、约束条件与业务含义;阐述表结构设计思路、字段映射关系、模板配置与生成流程;并提供表结构图、字段说明、典型数据示例与常见操作模式,帮助开发者快速理解与使用代码生成功能。
项目结构
代码生成模块位于 yudao-module-infra 子模块中,核心文件组织如下:
- 数据对象层:定义代码生成表与明细表的实体类(DO),用于映射数据库表结构
- 枚举层:定义模板类型、前端类型、场景等枚举,用于控制生成行为
- 服务层:代码生成引擎(CodegenEngine),负责模板加载、绑定变量、渲染与输出
- 控制器层:提供基于数据库表的代码生成配置入口(如批量创建)
图表来源
- CodegenTableDO.java
- CodegenColumnDO.java
- CodegenEngine.java
- CodegenTemplateTypeEnum.java
- CodegenFrontTypeEnum.java
- CodegenSceneEnum.java
章节来源
核心组件
- 代码生成表(infra_codegen_table):保存一次代码生成的完整配置,包括数据源、生成场景、模块/业务/类命名、作者、模板类型、前端类型、菜单与主子表关联等
- 代码生成明细表(infra_codegen_column):保存每个字段的生成配置,包括数据库字段信息、Java属性映射、字典类型、CRUD与UI配置等
- 代码生成引擎(CodegenEngine):负责模板加载、变量绑定、渲染与输出,支持后端模板与前端模板两类
- 枚举:模板类型(单表/树表/主子表)、前端类型(Vue2/Vue3/vben)、场景(管理后台/用户APP)
章节来源
- CodegenTableDO.java
- CodegenColumnDO.java
- CodegenEngine.java
- CodegenTemplateTypeEnum.java
- CodegenFrontTypeEnum.java
- CodegenSceneEnum.java
架构总览
代码生成的总体流程:
- 输入:选择数据源与数据库表,生成配置(场景、模板类型、前端类型、模块/业务/类命名、作者等)
- 解析:从数据库读取表结构与字段元数据,映射到 CodegenTableDO 与 CodegenColumnDO
- 渲染:根据模板类型与前端类型,匹配模板并绑定变量,渲染生成内容
- 输出:生成后端代码(Java)与前端代码(Vue/TS),以及 SQL 脚本
图表来源
详细组件分析
代码生成表(infra_codegen_table)结构
- 作用:保存一次代码生成的完整配置,决定生成哪些文件、如何命名、放在哪个模块与业务目录下
- 关键字段与含义:
- id:主键
- data_source_config_id:数据源配置编号,关联数据源配置
- scene:生成场景(管理后台/用户APP)
- table_name/table_comment:目标表名与注释
- remark:备注
- module_name/business_name/class_name/class_comment:模块名、业务名、类名(首字母大写)、类注释
- author:作者
- template_type:模板类型(单表/树表/主子表)
- front_type:前端类型(Vue2/Vue3/vben)
- parent_menu_id:父菜单编号(用于生成菜单)
- master_table_id/sub_join_column_id/sub_join_many:主子表关联配置
- tree_parent_column_id/tree_name_column_id:树表父子与名称字段配置
- 基础审计字段:creator/updater/create_time/update_time/deleted
图表来源
- CodegenTableDO.java
- create_tables.sql(测试)
- ruoyi-vue-pro.sql(MySQL)
- ruoyi-vue-pro.sql(Oracle)
- ruoyi-vue-pro.sql(PostgreSQL)
- ruoyi-vue-pro.sql(SQLServer)
- ruoyi-vue-pro-dm8.sql (达梦)
章节来源
- CodegenTableDO.java
- create_tables.sql(测试)
- ruoyi-vue-pro.sql(MySQL)
- ruoyi-vue-pro.sql(Oracle)
- ruoyi-vue-pro.sql(PostgreSQL)
- ruoyi-vue-pro.sql(SQLServer)
- ruoyi-vue-pro-dm8.sql(达梦)