更新数据同步

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);
}
dataTableInfoService.save(tableInfo);
logger.info("已同步数据库:", tableInfo.getDataSource(), ",数据表:", tableInfo.getTableName(), ",总计:", tableFields.size(), "个字段");
logger.info("已同步数据库:", tableInfo.getDataSource(), ",数据表:", tableInfo.getDataName(), ",总计:", tableFields.size(), "个字段");
}
} catch (Exception e) {
logger.error(e.getMessage());

View File

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

View File

@@ -40,8 +40,8 @@ public class DataTableInfo implements Serializable {
/**
* 数据表名称
*/
@TableField("table_name")
private String tableName;
@TableField("data_name")
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"));
})
.strategyConfig(builder -> {
builder.addInclude("biz_db_config")
builder.addInclude("data_table_info,data_table_field")
.addTablePrefix("biz_,erp_")
.entityBuilder()
.enableLombok()

View File

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

View File

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

View File

@@ -8,7 +8,7 @@
<result column="create_time" property="createTime" />
<result column="table_id" property="tableId" />
<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_type" property="fieldType" />
<result column="field_name" property="fieldName" />
@@ -23,7 +23,7 @@
<!-- 通用查询结果列 -->
<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>
</mapper>

View File

@@ -6,7 +6,7 @@
<resultMap id="BaseResultMap" type="com.mini.capi.biz.domain.DataTableInfo">
<id column="table_id" property="tableId" />
<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_size" property="tableSize" />
<result column="data_source" property="dataSource" />
@@ -24,7 +24,7 @@
<!-- 通用查询结果列 -->
<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>
</mapper>

View File

@@ -142,7 +142,7 @@
<div class="bg-white p-4 rounded-lg shadow-sm mb-4">
<div class="flex flex-col sm:flex-row gap-3">
<div class="relative flex-1">
<input
<label for="searchInput"></label><input
type="text"
id="searchInput"
placeholder="请输入表名称或描述进行查询..."
@@ -180,7 +180,7 @@
th:each="table : ${tables}">
<div class="mb-2">
<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"
th:text="${table.getDataSource()}"></span>
</div>
@@ -238,7 +238,7 @@
<!-- 背景遮罩 -->
<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>
document.addEventListener('DOMContentLoaded', function () {
// 核心元素获取

View File

@@ -419,7 +419,8 @@
</div>
<!-- 引入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>
// 提示弹窗工具函数 - 新增
function showToast(message, type = 'success') {