更新数据同步

This commit is contained in:
2025-11-17 17:10:25 +08:00
parent fbd01ad1da
commit 2933b7ac36
10 changed files with 28 additions and 30 deletions

View File

@@ -110,7 +110,7 @@ public class jobController {
dataTableFieldService.save(tableField); dataTableFieldService.save(tableField);
} }
dataTableInfoService.save(tableInfo); dataTableInfoService.save(tableInfo);
logger.info("已同步数据库:", tableInfo.getDataSource(), ",数据表:", tableInfo.getTableName(), ",总计:", tableFields.size(), "个字段"); logger.info("已同步数据库:", tableInfo.getDataSource(), ",数据表:", tableInfo.getDataName(), ",总计:", tableFields.size(), "个字段");
} }
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());

View File

@@ -51,8 +51,8 @@ public class DataTableField implements Serializable {
/** /**
* 数据表名称 * 数据表名称
*/ */
@TableField("table_name") @TableField("data_name")
private String tableName; private String dataName;
/** /**
* 字段序号(表示字段在表中的顺序) * 字段序号(表示字段在表中的顺序)

View File

@@ -40,8 +40,8 @@ public class DataTableInfo implements Serializable {
/** /**
* 数据表名称 * 数据表名称
*/ */
@TableField("table_name") @TableField("data_name")
private String tableName; private String dataName;
/** /**
* 数据表描述 * 数据表描述

View File

@@ -29,7 +29,7 @@ public class demo {
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper"));
}) })
.strategyConfig(builder -> { .strategyConfig(builder -> {
builder.addInclude("biz_db_config") builder.addInclude("data_table_info,data_table_field")
.addTablePrefix("biz_,erp_") .addTablePrefix("biz_,erp_")
.entityBuilder() .entityBuilder()
.enableLombok() .enableLombok()

View File

@@ -97,7 +97,7 @@ public class MysqlUtils {
try (ResultSet tableRs = tablePs.executeQuery()) { try (ResultSet tableRs = tablePs.executeQuery()) {
while (tableRs.next()) { while (tableRs.next()) {
DataTableInfo tableInfo = buildDataTableInfo(tableRs, dbName); DataTableInfo tableInfo = buildDataTableInfo(tableRs, dbName);
List<DataTableField> fields = getFieldsByTable(conn, dbName, tableInfo.getTableName()); List<DataTableField> fields = getFieldsByTable(conn, dbName, tableInfo.getDataName());
fields.forEach(field -> field.setTableId(tableInfo.getTableId())); fields.forEach(field -> field.setTableId(tableInfo.getTableId()));
tableInfos.add(tableInfo); tableInfos.add(tableInfo);
} }
@@ -112,7 +112,7 @@ public class MysqlUtils {
private static DataTableInfo buildDataTableInfo(ResultSet tableRs, String dbName) throws SQLException { private static DataTableInfo buildDataTableInfo(ResultSet tableRs, String dbName) throws SQLException {
DataTableInfo tableInfo = new DataTableInfo(); DataTableInfo tableInfo = new DataTableInfo();
tableInfo.setTableId(vId.getUid()); tableInfo.setTableId(vId.getUid());
tableInfo.setTableName(tableRs.getString("TABLE_NAME")); tableInfo.setDataName(tableRs.getString("TABLE_NAME"));
tableInfo.setTableComment(tableRs.getString("TABLE_COMMENT")); tableInfo.setTableComment(tableRs.getString("TABLE_COMMENT"));
long dataLength = tableRs.getLong("DATA_LENGTH"); long dataLength = tableRs.getLong("DATA_LENGTH");
long indexLength = tableRs.getLong("INDEX_LENGTH"); long indexLength = tableRs.getLong("INDEX_LENGTH");
@@ -162,7 +162,7 @@ public class MysqlUtils {
DataTableField field = new DataTableField(); DataTableField field = new DataTableField();
field.setFieldId(vId.getUid()); field.setFieldId(vId.getUid());
field.setDataSource(fieldRs.getString("TABLE_SCHEMA")); field.setDataSource(fieldRs.getString("TABLE_SCHEMA"));
field.setTableName(fieldRs.getString("TABLE_NAME")); field.setDataName(fieldRs.getString("TABLE_NAME"));
field.setFieldName(fieldRs.getString("COLUMN_NAME")); field.setFieldName(fieldRs.getString("COLUMN_NAME"));
String fieldType = fieldRs.getString("COLUMN_TYPE"); String fieldType = fieldRs.getString("COLUMN_TYPE");
field.setFieldType(fieldType); field.setFieldType(fieldType);
@@ -202,7 +202,7 @@ public class MysqlUtils {
for (Map.Entry<String, List<DataTableInfo>> entry : schemaInfo.entrySet()) { for (Map.Entry<String, List<DataTableInfo>> entry : schemaInfo.entrySet()) {
for (DataTableInfo tableInfo : entry.getValue()) { for (DataTableInfo tableInfo : entry.getValue()) {
tableInfo.setDbId(dbConfig.getId()); tableInfo.setDbId(dbConfig.getId());
List<DataTableField> dataTableFields = getFieldsByTable(conn, entry.getKey(), tableInfo.getTableName()); List<DataTableField> dataTableFields = getFieldsByTable(conn, entry.getKey(), tableInfo.getDataName());
dataTableFields.stream().forEach(tableField -> tableField.setTableId(tableInfo.getTableId())); dataTableFields.stream().forEach(tableField -> tableField.setTableId(tableInfo.getTableId()));
tableTrees.add(new TableTree(tableInfo, dataTableFields)); tableTrees.add(new TableTree(tableInfo, dataTableFields));
} }

View File

@@ -18,7 +18,7 @@ public class SqlUtils {
public static String CreateTableSql(DataTableInfo tableInfo, List<DataTableField> fieldList) { public static String CreateTableSql(DataTableInfo tableInfo, List<DataTableField> fieldList) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
// 表定义开始 // 表定义开始
sb.append("CREATE TABLE ").append(tableInfo.getTableName()).append(" (\n"); sb.append("CREATE TABLE ").append(tableInfo.getDataName()).append(" (\n");
// 拼接字段定义 // 拼接字段定义
for (int i = 0; i < fieldList.size(); i++) { for (int i = 0; i < fieldList.size(); i++) {
DataTableField field = fieldList.get(i); DataTableField field = fieldList.get(i);
@@ -69,16 +69,15 @@ public class SqlUtils {
public static String SelectSqlComments(DataTableInfo tableInfo, List<DataTableField> fieldList) { public static String SelectSqlComments(DataTableInfo tableInfo, List<DataTableField> fieldList) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
// 表注释 // 表注释
sb.append("-- 表名:").append(tableInfo.getTableName()).append("\n"); sb.append("-- 表名:").append(tableInfo.getDataName()).append("\n");
sb.append("-- 描述:").append(tableInfo.getTableComment() != null ? tableInfo.getTableComment() : "").append("\n"); sb.append("-- 描述:").append(tableInfo.getTableComment() != null ? tableInfo.getTableComment() : "").append("\n");
sb.append("-- 数据来源:").append(tableInfo.getDataSource() != null ? tableInfo.getDataSource() : "未知").append("\n"); sb.append("-- 数据来源:").append(tableInfo.getDataSource() != null ? tableInfo.getDataSource() : "未知").append("\n");
// SELECT语句开始 // SELECT语句开始
sb.append("SELECT\n"); sb.append("SELECT\n");
// 拼接字段(带注释) // 拼接字段(带注释)
for (int i = 0; i < fieldList.size(); i++) { for (int i = 0; i < fieldList.size(); i++) {
DataTableField field = fieldList.get(i); DataTableField field = fieldList.get(i);
sb.append(" ").append(field.getFieldName()).append(""); sb.append(" ").append(field.getFieldName());
// 字段注释 // 字段注释
if (field.getFieldRemark() != null && !field.getFieldRemark().isEmpty()) { if (field.getFieldRemark() != null && !field.getFieldRemark().isEmpty()) {
sb.append(" -- ").append(field.getFieldRemark()); sb.append(" -- ").append(field.getFieldRemark());
@@ -89,10 +88,8 @@ public class SqlUtils {
} }
sb.append("\n"); sb.append("\n");
} }
// 表名 // 表名
sb.append("FROM ").append(tableInfo.getTableName()).append(";"); sb.append("FROM ").append(tableInfo.getDataName()).append(";");
return sb.toString(); return sb.toString();
} }
} }

View File

@@ -8,7 +8,7 @@
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="table_id" property="tableId" /> <result column="table_id" property="tableId" />
<result column="data_source" property="dataSource" /> <result column="data_source" property="dataSource" />
<result column="table_name" property="tableName" /> <result column="data_name" property="dataName" />
<result column="field_order" property="fieldOrder" /> <result column="field_order" property="fieldOrder" />
<result column="field_type" property="fieldType" /> <result column="field_type" property="fieldType" />
<result column="field_name" property="fieldName" /> <result column="field_name" property="fieldName" />
@@ -23,7 +23,7 @@
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
create_time, field_id, table_id, data_source, table_name, field_order, field_type, field_name, field_length, field_remark, ds, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state create_time, field_id, table_id, data_source, data_name, field_order, field_type, field_name, field_length, field_remark, ds, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state
</sql> </sql>
</mapper> </mapper>

View File

@@ -6,7 +6,7 @@
<resultMap id="BaseResultMap" type="com.mini.capi.biz.domain.DataTableInfo"> <resultMap id="BaseResultMap" type="com.mini.capi.biz.domain.DataTableInfo">
<id column="table_id" property="tableId" /> <id column="table_id" property="tableId" />
<result column="create_time" property="createTime" /> <result column="create_time" property="createTime" />
<result column="table_name" property="tableName" /> <result column="data_name" property="dataName" />
<result column="table_comment" property="tableComment" /> <result column="table_comment" property="tableComment" />
<result column="table_size" property="tableSize" /> <result column="table_size" property="tableSize" />
<result column="data_source" property="dataSource" /> <result column="data_source" property="dataSource" />
@@ -24,7 +24,7 @@
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
create_time, table_id, table_name, table_comment, table_size, data_source, creator, data_rows, update_time, remarks, db_id, ds, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state create_time, table_id, data_name, table_comment, table_size, data_source, creator, data_rows, update_time, remarks, db_id, ds, f_tenant_id, f_flow_id, f_flow_task_id, f_flow_state
</sql> </sql>
</mapper> </mapper>

View File

@@ -142,7 +142,7 @@
<div class="bg-white p-4 rounded-lg shadow-sm mb-4"> <div class="bg-white p-4 rounded-lg shadow-sm mb-4">
<div class="flex flex-col sm:flex-row gap-3"> <div class="flex flex-col sm:flex-row gap-3">
<div class="relative flex-1"> <div class="relative flex-1">
<input <label for="searchInput"></label><input
type="text" type="text"
id="searchInput" id="searchInput"
placeholder="请输入表名称或描述进行查询..." placeholder="请输入表名称或描述进行查询..."
@@ -180,7 +180,7 @@
th:each="table : ${tables}"> th:each="table : ${tables}">
<div class="mb-2"> <div class="mb-2">
<div class="flex justify-between items-start"> <div class="flex justify-between items-start">
<h3 class="font-semibold text-gray-800 table-name" th:text="${table.getTableName()}"></h3> <h3 class="font-semibold text-gray-800 table-name" th:text="${table.getDataName()}"></h3>
<span class="text-xs bg-blue-100 text-blue-800 px-2 py-0.5 rounded" <span class="text-xs bg-blue-100 text-blue-800 px-2 py-0.5 rounded"
th:text="${table.getDataSource()}"></span> th:text="${table.getDataSource()}"></span>
</div> </div>
@@ -238,7 +238,7 @@
<!-- 背景遮罩 --> <!-- 背景遮罩 -->
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <script th:src="@{/bootstrap/dist/js/bootstrap.bundle.min.js}"></script>
<script> <script>
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', function () {
// 核心元素获取 // 核心元素获取

View File

@@ -419,7 +419,8 @@
</div> </div>
<!-- 引入Bootstrap JS --> <!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script th:src="@{/bootstrap/dist/js/bootstrap.bundle.min.js}"></script>
<script> <script>
// 提示弹窗工具函数 - 新增 // 提示弹窗工具函数 - 新增
function showToast(message, type = 'success') { function showToast(message, type = 'success') {