diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
index f1990f3fc..368162214 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
@@ -39,27 +39,38 @@ public class CodegenColumnDO extends BaseDO {
/**
* 字段名
+ *
+ * 关联 {@link TableField#getName()}
*/
private String columnName;
/**
* 数据库字段类型
+ *
* 关联 {@link TableField.MetaInfo#getJdbcType()}
*/
private String dataType;
/**
* 字段描述
+ *
+ * 关联 {@link TableField#getComment()}
*/
private String columnComment;
/**
* 是否允许为空
+ *
+ * 关联 {@link TableField.MetaInfo#isNullable()}
*/
private Boolean nullable;
/**
* 是否主键
+ *
+ * 关联 {@link TableField#isKeyFlag()}
*/
private Boolean primaryKey;
/**
* 是否自增
+ *
+ * 关联 {@link TableField#isKeyIdentityFlag()}
*/
private Boolean autoIncrement;
/**
@@ -71,12 +82,16 @@ public class CodegenColumnDO extends BaseDO {
/**
* Java 属性类型
- *
+ *
* 例如说 String、Boolean 等等
+ *
+ * 关联 {@link TableField#getColumnType()}
*/
private String javaType;
/**
* Java 属性名
+ *
+ * 关联 {@link TableField#getPropertyName()}
*/
private String javaField;
/**
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java
index b821d210c..4f4a644a7 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java
@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum;
import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -44,10 +45,14 @@ public class CodegenTableDO extends BaseDO {
/**
* 表名称
+ *
+ * 关联 {@link TableInfo#getName()}
*/
private String tableName;
/**
* 表描述
+ *
+ * 关联 {@link TableInfo#getComment()}
*/
private String tableComment;
/**
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java
index cd3ddaba7..8bd2d5c93 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java
+++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImpl.java
@@ -41,7 +41,7 @@ public class DatabaseTableServiceImpl implements DatabaseTableService {
return CollUtil.getFirst(getTableList0(dataSourceConfigId, name));
}
- public List getTableList0(Long dataSourceConfigId, String name) {
+ private List getTableList0(Long dataSourceConfigId, String name) {
// 获得数据源配置
DataSourceConfigDO config = dataSourceConfigService.getDataSourceConfig(dataSourceConfigId);
Assert.notNull(config, "数据源({}) 不存在!", dataSourceConfigId);
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImplTest.java b/yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImplTest.java
new file mode 100644
index 000000000..6ce8c7d41
--- /dev/null
+++ b/yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/db/DatabaseTableServiceImplTest.java
@@ -0,0 +1,89 @@
+package cn.iocoder.yudao.module.infra.service.db;
+
+import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
+import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO;
+import com.baomidou.mybatisplus.generator.config.po.TableField;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
+import org.apache.ibatis.type.JdbcType;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.annotation.Import;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+
+@Import(DatabaseTableServiceImpl.class)
+public class DatabaseTableServiceImplTest extends BaseDbUnitTest {
+
+ @Resource
+ private DatabaseTableServiceImpl databaseTableService;
+
+ @MockBean
+ private DataSourceConfigService dataSourceConfigService;
+
+ @Test
+ public void testGetTableList() {
+ // 准备参数
+ Long dataSourceConfigId = randomLongId();
+ // mock 方法
+ DataSourceConfigDO dataSourceConfig = new DataSourceConfigDO().setUsername("sa").setPassword("")
+ .setUrl("jdbc:h2:mem:testdb");
+ when(dataSourceConfigService.getDataSourceConfig(eq(dataSourceConfigId)))
+ .thenReturn(dataSourceConfig);
+
+ // 调用
+ List tables = databaseTableService.getTableList(dataSourceConfigId,
+ "config", "参数");
+ // 断言
+ assertEquals(1, tables.size());
+ assertTableInfo(tables.get(0));
+ }
+
+ @Test
+ public void testGetTable() {
+ // 准备参数
+ Long dataSourceConfigId = randomLongId();
+ // mock 方法
+ DataSourceConfigDO dataSourceConfig = new DataSourceConfigDO().setUsername("sa").setPassword("")
+ .setUrl("jdbc:h2:mem:testdb");
+ when(dataSourceConfigService.getDataSourceConfig(eq(dataSourceConfigId)))
+ .thenReturn(dataSourceConfig);
+
+ // 调用
+ TableInfo tableInfo = databaseTableService.getTable(dataSourceConfigId, "infra_config");
+ // 断言
+ assertTableInfo(tableInfo);
+ }
+
+ private void assertTableInfo(TableInfo tableInfo) {
+ assertEquals("infra_config", tableInfo.getName());
+ assertEquals("参数配置表", tableInfo.getComment());
+ assertEquals(13, tableInfo.getFields().size());
+ // id 字段
+ TableField idField = tableInfo.getFields().get(0);
+ assertEquals("id", idField.getName());
+ assertEquals(JdbcType.BIGINT, idField.getMetaInfo().getJdbcType());
+ assertEquals("编号", idField.getComment());
+ assertFalse(idField.getMetaInfo().isNullable());
+ assertTrue(idField.isKeyFlag());
+ assertTrue(idField.isKeyIdentityFlag());
+ assertEquals(DbColumnType.LONG, idField.getColumnType());
+ assertEquals("id", idField.getPropertyName());
+ // name 字段
+ TableField nameField = tableInfo.getFields().get(3);
+ assertEquals("name", nameField.getName());
+ assertEquals(JdbcType.VARCHAR, nameField.getMetaInfo().getJdbcType());
+ assertEquals("名字", nameField.getComment());
+ assertFalse(nameField.getMetaInfo().isNullable());
+ assertFalse(nameField.isKeyFlag());
+ assertFalse(nameField.isKeyIdentityFlag());
+ assertEquals(DbColumnType.STRING, nameField.getColumnType());
+ assertEquals("name", nameField.getPropertyName());
+ }
+}
diff --git a/yudao-module-infra/yudao-module-infra-biz/src/test/resources/sql/create_tables.sql b/yudao-module-infra/yudao-module-infra-biz/src/test/resources/sql/create_tables.sql
index 5825e0fef..9d4e57e67 100644
--- a/yudao-module-infra/yudao-module-infra-biz/src/test/resources/sql/create_tables.sql
+++ b/yudao-module-infra/yudao-module-infra-biz/src/test/resources/sql/create_tables.sql
@@ -1,9 +1,9 @@
CREATE TABLE IF NOT EXISTS "infra_config" (
- "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+ "id" bigint(20) NOT NULL GENERATED BY DEFAULT AS IDENTITY COMMENT '编号',
"category" varchar(50) NOT NULL,
"type" tinyint NOT NULL,
- "name" varchar(100) NOT NULL DEFAULT '',
+ "name" varchar(100) NOT NULL DEFAULT '' COMMENT '名字',
"config_key" varchar(100) NOT NULL DEFAULT '',
"value" varchar(500) NOT NULL DEFAULT '',
"visible" bit NOT NULL,