From 939ccbfbd22fce4c08e2a01af04bf24d94c83a6b Mon Sep 17 00:00:00 2001 From: wangshaoping Date: Mon, 25 Aug 2025 13:58:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A1=86=E6=9E=B6=E5=8F=91?= =?UTF-8?q?=E5=B8=83:=208.2.35=20=20=201)=20=E6=8F=90=E5=8D=87=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AF=BC=E5=87=BA=E6=98=BE=E7=A4=BA=E8=A1=A8=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端核心发布: 8.2.128 1) --- .../schemacrawler/MetaDataLoaderImpl.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/io.sc.platform.jdbc.schemacrawler/src/main/java/io/sc/platform/jdbc/schemacrawler/MetaDataLoaderImpl.java b/io.sc.platform.jdbc.schemacrawler/src/main/java/io/sc/platform/jdbc/schemacrawler/MetaDataLoaderImpl.java index 91dcf4fa..3a6345ef 100644 --- a/io.sc.platform.jdbc.schemacrawler/src/main/java/io/sc/platform/jdbc/schemacrawler/MetaDataLoaderImpl.java +++ b/io.sc.platform.jdbc.schemacrawler/src/main/java/io/sc/platform/jdbc/schemacrawler/MetaDataLoaderImpl.java @@ -89,6 +89,7 @@ public class MetaDataLoaderImpl implements MetaDataLoader { table.setName(rs.getString("TABLE_NAME")); table.setRemarks(rs.getString("REMARKS")); table.setColumns(getColumns(dataSource, catalogName, schemaName, table.getName())); + table.setIndexes(getIndexs(dataSource, catalogName, schemaName, table.getName())); table.setForeignKeys(getForeignKeys(dataSource, catalogName, schemaName, table.getName())); buildSelfReference(table); result.add(table); @@ -101,6 +102,7 @@ public class MetaDataLoaderImpl implements MetaDataLoader { table.setName(rs.getString("TABLE_NAME")); table.setRemarks(rs.getString("REMARKS")); table.setColumns(getColumns(dataSource, catalogName, schemaName, table.getName())); + table.setIndexes(getIndexs(dataSource, catalogName, schemaName, table.getName())); table.setForeignKeys(getForeignKeys(dataSource, catalogName, schemaName, table.getName())); buildSelfReference(table); result.add(table); @@ -137,6 +139,37 @@ public class MetaDataLoaderImpl implements MetaDataLoader { return result; } + private List getIndexs(DataSource dataSource, String catalogName, String schemaName, String tableName) throws MetaDataAccessException { + List result =new ArrayList<>(); + Connection connection =null; + ResultSet rs =null; + try { + connection =dataSource.getConnection(); + DatabaseMetaData databaseMetaData =connection.getMetaData(); + rs =databaseMetaData.getIndexInfo(catalogName,schemaName,tableName,false,false); + while (rs.next()){ + Index index =new Index(); + index.setName(rs.getString("INDEX_NAME")); + index.setIndexType(IndexType.from(rs.getShort("TYPE"))); + index.setUnique(!rs.getBoolean("NON_UNIQUE")); + + Column indexColumn =new Column(); + indexColumn.setName(rs.getString("COLUMN_NAME")); + List indexColumns =new ArrayList<>(); + indexColumns.add(indexColumn); + index.setColumns(indexColumns); + + result.add(index); + } + } catch (SQLException e) { + throw new MetaDataAccessException(e); + }finally { + try{rs.close();} catch (SQLException e) {} + try{connection.close();} catch (SQLException e) {} + } + return result; + } + public List getTableSummary(DataSource dataSource, String catalogName, String schemaName, boolean isCount) throws MetaDataAccessException { List tables =this.getTables(dataSource,catalogName,schemaName); if(tables==null || tables.isEmpty()){