From 1442f08a86539dd2e2dc7bed384ea4dfb9fc7eaf Mon Sep 17 00:00:00 2001 From: gaoxq <376340421@qq.com> Date: Wed, 27 Aug 2025 12:33:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EMySQL=E5=92=8Cpg=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=9A=84=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mini/capi/model/TabResult.java | 24 ++++++++++++++++ .../capi/sys/controller/dbController.java | 28 +++++++++++++++---- 2 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/mini/capi/model/TabResult.java diff --git a/src/main/java/com/mini/capi/model/TabResult.java b/src/main/java/com/mini/capi/model/TabResult.java new file mode 100644 index 0000000..c5c8457 --- /dev/null +++ b/src/main/java/com/mini/capi/model/TabResult.java @@ -0,0 +1,24 @@ +package com.mini.capi.model; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class TabResult implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + private String tableName; + + private String tableDesc; + + public TabResult(String tableName,String tableDesc){ + this.tableName = tableName; + this.tableDesc = tableDesc; + } + +} diff --git a/src/main/java/com/mini/capi/sys/controller/dbController.java b/src/main/java/com/mini/capi/sys/controller/dbController.java index 7f26d36..0474c5d 100644 --- a/src/main/java/com/mini/capi/sys/controller/dbController.java +++ b/src/main/java/com/mini/capi/sys/controller/dbController.java @@ -4,6 +4,7 @@ import com.mini.capi.biz.domain.DbConfig; import com.mini.capi.biz.service.DbConfigService; import com.mini.capi.config.DataSourceConfig; import com.mini.capi.model.ApiResult; +import com.mini.capi.model.TabResult; import com.mini.capi.utils.vToken; import jakarta.annotation.Resource; import org.springframework.jdbc.core.JdbcTemplate; @@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Comparator; import java.util.List; import java.util.Map; @@ -26,7 +28,7 @@ public class dbController { * 获取MySQL的当前连接下的所有数据表 */ @GetMapping("/getApiSourceTables") - public ApiResult> listSourceTables(String token, String dbId) { + public ApiResult> listSourceTables(String token, String dbId) { // 1. 验证token有效性 if (!vToken.isValidToken(token)) { return ApiResult.error(401, "无效的访问令牌"); @@ -45,15 +47,31 @@ public class dbController { try { JdbcTemplate jdbcTemplate = DataSourceConfig.createJdbcTemplate(dbConfig); - // 补充参数传递,修复SQL参数绑定问题 - String querySql = "SELECT table_name FROM information_schema.tables WHERE table_schema = ?"; + // 补充参数传递 + String querySql = "SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.tables WHERE TABLE_SCHEMA = ?"; List> result = jdbcTemplate.queryForList(querySql, dbConfig.getDbSchema()); - List data = result.stream() - .map(row -> row.values().iterator().next().toString()) + List data = result.stream() + .map(row -> { + String tableName = row.get("TABLE_NAME") != null ? row.get("TABLE_NAME").toString() : ""; + String tableDesc = row.get("TABLE_COMMENT") != null ? row.get("TABLE_COMMENT").toString() : ""; + return new TabResult(tableName, getComment(tableName, tableDesc)); + }) + .sorted(Comparator.comparing(TabResult::getTableName)) // 按表名排序 .toList(); return ApiResult.success(data); } catch (Exception e) { return ApiResult.error(101, e.getMessage()); } } + + + private String getComment(String tableName, String tableDesc) { + boolean hasTableDesc = tableDesc != null && !tableDesc.trim().isEmpty(); + // 根据表描述是否存在返回不同格式 + if (hasTableDesc) { + return String.format("%s(%s)", tableDesc.trim(), tableName); + } else { + return tableName; + } + } }