跳到主要内容

Infra:配置、代码生成与示例对象

参数与数据源配置​

核验日期:2026-09-18。证据级别:当前源码静态核验 + 测试环境统一只读元数据采集。

物理类型、可空性、默认值、完整索引及约束见 MySQL 实测字典;源码与实库差异见 infra 总览。

infra_config 保存应用参数;infra_data_source_config 保存代码生成器等功能使用的连接描述,不代表微服务启动时 Nacos dynamic-datasource 的全部配置。

返回 infra 总览。以下列名为 MyBatis 映射或显式 SQL 预期,类型栏是 Java 类型,不推断数据库长度、默认值及可空性;所有 BaseDO 子类均包含总览所列五个继承字段。

业务流程与读写职责​

参数维护人员创建或更新配置时,ConfigServiceImpl:32/44 校验 configKey,再保存 infra_config;其他模块通过配置 API 按键读取。category/name 供管理端分类展示,config_key 提供程序入口,visible 控制前端读取资格。DataSourceConfig 连接用于选库导入元数据,与应用启动数据源配置分离。

关系与存储规则​

  • infra_config.config_key 由 ConfigMapper.selectByKey 查询(ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigMapper.java:13);键唯一性需以实际索引确认,不能把 selectOne 当唯一约束。
  • infra_data_source_config.password 使用 EncryptTypeHandler,文档只记录字段定义;url/username/password 的实际内容不采集。
  • infra_config.visible 控制前端可见性,不改变列是否落库。配置键是跨微服务 API 的逻辑引用,不是外键。

infra_config​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java:28。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long参数主键28
categorycategory: String参数分类32
namename: String参数名称36
config_keyconfigKey: String参数键名 支持多 DB 类型时,无法直接使用 key + @TableField("config_key") 来实现转换,原因是 "config_key" AS key 而存在报错42
valuevalue: String参数键值46
typetype: Integer参数类型 枚举 ConfigTypeEnum52
visiblevisible: Boolean是否可见 不可见的参数,一般是敏感参数,前端不可获取58
remarkremark: String备注62
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

infra_data_source_config​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java:28。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long主键编号28
namename: String连接名32
urlurl: String数据源连接37
usernameusername: String用户名41
passwordpassword: String密码;EncryptTypeHandler 加密映射,禁止记录实际值46
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

本次实测对照​

  • infra_config:13 列,源码字段全部存在,无额外物理列。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
  • infra_data_source_config:10 列,源码字段全部存在,无额外物理列。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。

代码生成元数据​

核验日期:2026-09-18。证据级别:当前源码静态核验 + 测试环境统一只读元数据采集。

物理类型、可空性、默认值、完整索引及约束见 MySQL 实测字典;源码与实库差异见 infra 总览。

两张表保存生成器导入的业务表及字段描述。column_name/data_type/nullable/primary_key 是被描述对象的属性,不是 infra_codegen_column 自身的 DDL。

返回 infra 总览。以下列名为 MyBatis 映射或显式 SQL 预期,类型栏是 Java 类型,不推断数据库长度、默认值及可空性;所有 BaseDO 子类均包含总览所列五个继承字段。

业务流程与读写职责​

开发人员选数据源导入目标表,CodegenServiceImpl:68/97/105 分别写 table 与 column 元数据;随后调整 Java/前端生成选项,generationCodes:250 读取两层配置生成代码。syncCodegenFromDB:155 对照真实目标表同步列;deleteCodegen:217 同时删除表描述和关联列。数据库原始描述与人工生成选项分别服务元数据同步和代码输出,不能当作实际 DDL。

关系与存储规则​

  • infra_codegen_column.table_id → infra_codegen_table.id,表/列通过生成器服务维护;删除列的 Mapper 为 ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java:19。
  • infra_codegen_table.data_source_config_id → infra_data_source_config.id;parent_menu_id → system_menu.id 为跨服务逻辑关联。
  • master_table_id 自关联;sub_join_column_id/tree_parent_column_id/tree_name_column_id 引用生成器列 ID;sub_join_many 区分一对多和一对一。
  • dict_type 按字典类型字符串逻辑关联 system 字典;table_name 仅表示导入目标,不将被导入业务表归 infra 所有。
  • CodegenTableMapper.java:15 以 table_name 与 data_source_config_id 查重;是否存在相应唯一索引以实库元数据为准。

infra_codegen_column​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java:30。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: LongID 编号30
table_idtableId: Long表编号 关联 CodegenTableDO#getId()36
column_namecolumnName: String字段名 关联 TableField#getName()45
data_typedataType: String数据库字段类型 关联 TableField.MetaInfo#getJdbcType()51
column_commentcolumnComment: String字段描述 关联 TableField#getComment()57
nullablenullable: Boolean是否允许为空 关联 TableField.MetaInfo#isNullable()63
primary_keyprimaryKey: Boolean是否主键 关联 TableField#isKeyFlag()69
ordinal_positionordinalPosition: Integer排序73
java_typejavaType: StringJava 属性类型 例如说 String、Boolean 等等 关联 TableField#getColumnType()84
java_fieldjavaField: StringJava 属性名 关联 TableField#getPropertyName()90
dict_typedictType: String字典类型 关联 DictTypeDO 的 type 属性96
exampleexample: String数据示例,主要用于生成 Swagger 注解的 example 字段100
create_operationcreateOperation: Boolean是否为 Create 创建操作的字段107
update_operationupdateOperation: Boolean是否为 Update 更新操作的字段111
list_operationlistOperation: Boolean是否为 List 查询操作的字段115
list_operation_conditionlistOperationCondition: StringList 查询操作的条件类型 枚举 CodegenColumnListConditionEnum121
list_operation_resultlistOperationResult: Boolean是否为 List 查询操作的返回字段125
html_typehtmlType: String显示类型 枚举 CodegenColumnHtmlTypeEnum134
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

infra_codegen_table​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java:32。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: LongID 编号32
data_source_config_iddataSourceConfigId: Long数据源编号 关联 DataSourceConfigDO#getId()39
scenescene: Integer生成场景 枚举 CodegenSceneEnum45
table_nametableName: String表名称 关联 TableInfo#getName()54
table_commenttableComment: String表描述 关联 TableInfo#getComment()60
remarkremark: String备注64
module_namemoduleName: String模块名,即一级目录 例如说,system、infra、tool 等等73
business_namebusinessName: String业务名,即二级目录 例如说,user、permission、dict 等等79
class_nameclassName: String类名称(首字母大写) 例如说,SysUser、SysMenu、SysDictData 等等85
class_commentclassComment: String类描述89
authorauthor: String作者93
template_typetemplateType: Integer模板类型 枚举 CodegenTemplateTypeEnum102
front_typefrontType: Integer代码生成的前端类型 枚举 CodegenFrontTypeEnum108
parent_menu_idparentMenuId: Long父菜单编号 关联 MenuDO 的 id 属性117
master_table_idmasterTableId: Long主表的编号 关联 CodegenTableDO#getId()126
sub_join_column_idsubJoinColumnId: Long【自己】子表关联主表的字段编号 关联 CodegenColumnDO#getId()132
sub_join_manysubJoinMany: Boolean主表与子表是否一对多 true:一对多 false:一对一139
tree_parent_column_idtreeParentColumnId: Long树表的父字段编号 关联 CodegenColumnDO#getId()148
tree_name_column_idtreeNameColumnId: Long树表的名字字段编号 名字的用途:新增或修改时,select 框展示的字段 关联 CodegenColumnDO#getId()156
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

本次实测对照​

  • infra_codegen_column:23 列,源码字段全部存在,无额外物理列。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
  • infra_codegen_table:24 列,源码字段全部存在,无额外物理列。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。

代码生成演示表​

核验日期:2026-09-18。证据级别:当前源码静态核验 + 测试环境统一只读元数据采集。

物理类型、可空性、默认值、完整索引及约束见 MySQL 实测字典;源码与实库差异见 infra 总览。

这五张表具有正式 Mapper/Service 源码,因此列入完整源码清单;是否部署到当前库另行核对,不能因目录名 demo 就漏掉,也不能据源码断言线上启用。

返回 infra 总览。以下列名为 MyBatis 映射或显式 SQL 预期,类型栏是 Java 类型,不推断数据库长度、默认值及可空性;所有 BaseDO 子类均包含总览所列五个继承字段。

业务流程与读写职责​

演示页面分别展示单表联系人、树形分类和学生主子表三种生成模式。联系人独立 CRUD;分类按 parent_id 维护层级;学生为主记录,课程为列表子项,班级按 student_id 查单项。这些关系用于说明生成器支持的业务形态,不是实际设备、租户成员或学校生产业务。测试库五表存在不代表演示页面已启用。

关系与存储规则​

  • yudao_demo02_category.parent_id → yudao_demo02_category.id 为树形自关联;父级与名字查重方法在 ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo02/Demo02CategoryMapper.java:27。
  • yudao_demo03_course.student_id → yudao_demo03_student.id(课程列表);yudao_demo03_grade.student_id → yudao_demo03_student.id(班级信息),对应查询/删除见 Demo03CourseMapper:26/30、Demo03GradeMapper:24/28。
  • 演示联系人/学生 sex 引用 system_user_sex 字典语义;这里不是 system 管理员表,也不应与真实账号主键合并。
  • 演示 DO 没有声明 SQL 外键或二级索引;Java 单条查询不足以证明数据库一对一唯一约束。

yudao_demo01_contact​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java:30。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long编号30
namename: String名字34
sexsex: Integer性别 枚举 system_user_sex 对应的类40
birthdaybirthday: LocalDateTime出生年44
descriptiondescription: String简介48
avataravatar: String头像52
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

yudao_demo02_category​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java:30。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long编号30
namename: String名字34
parent_idparentId: Long父级编号38
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

yudao_demo03_course​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java:28。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long编号28
student_idstudentId: Long学生编号32
namename: String名字36
scorescore: Integer分数40
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

yudao_demo03_grade​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java:28。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long编号28
student_idstudentId: Long学生编号32
namename: String名字36
teacherteacher: String班主任40
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

yudao_demo03_student​

源码:ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java:30。

继承:BaseDO(五个审计/软删除字段见下表末尾)。主键候选为 id(实体主键注解或 MyBatis 约定);二级索引、唯一性和物理外键以实际结构核对,不由字段名推定。

预期列名Java 属性 / 类型业务含义与映射源码行
idid: Long编号30
namename: String名字34
sexsex: Integer性别 枚举 system_user_sex 对应的类40
birthdaybirthday: LocalDateTime出生日期44
descriptiondescription: String简介48
create_timecreateTime: LocalDateTime创建时间,INSERT 自动填充BaseDO:30
update_timeupdateTime: LocalDateTime修改时间,INSERT_UPDATE 自动填充BaseDO:35
creatorcreator: String创建者标识,VARCHAR 映射BaseDO:42
updaterupdater: String更新者标识,VARCHAR 映射BaseDO:49
deleteddeleted: Boolean逻辑删除字段BaseDO:54

本次实测对照​

  • yudao_demo01_contact:12 列,源码字段全部存在;额外物理列 tenant_id。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
  • yudao_demo02_category:9 列,源码字段全部存在;额外物理列 tenant_id。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
  • yudao_demo03_course:10 列,源码字段全部存在;额外物理列 tenant_id。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
  • yudao_demo03_grade:10 列,源码字段全部存在;额外物理列 tenant_id。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
  • yudao_demo03_student:11 列,源码字段全部存在;额外物理列 tenant_id。索引:PRIMARY(id) 唯一。物理外键:本次元数据未返回。
用户文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答