获取表名:

可以通过 JDBC 的 DatabaseMetaData 类获取表名,示例代码如下:

Connection conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/test', 'root', '123456');
DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getTables(null, null, null, new String[] {'TABLE'});
while (rs.next()) {
    String tableName = rs.getString('TABLE_NAME');
    System.out.println('Table name: ' + tableName);
}

其中,getTables() 方法的四个参数分别对应 schema、catalog、table name pattern 和 types,这里将 types 设为 'TABLE' 表示只获取表。

获取表注释:

可以通过查询 INFORMATION_SCHEMA.TABLES 表获取表注释,示例代码如下:

Connection conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/test', 'root', '123456');
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery('SELECT TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'test'');
while (rs.next()) {
    String tableName = rs.getString('TABLE_NAME');
    String tableComment = rs.getString('TABLE_COMMENT');
    System.out.println('Table name: ' + tableName + ', Table comment: ' + tableComment);
}

其中,INFORMATION_SCHEMA.TABLES 表存储了数据库中所有表的元数据信息,通过查询该表并指定 TABLE_SCHEMA 为数据库名称,可以获取该数据库中所有表的信息。

获取列名、列注释和列的数据类型:

可以通过查询 INFORMATION_SCHEMA.COLUMNS 表获取列名、列注释和列的数据类型,示例代码如下:

Connection conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/test', 'root', '123456');
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery('SELECT COLUMN_NAME, COLUMN_COMMENT, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'user'');
while (rs.next()) {
    String columnName = rs.getString('COLUMN_NAME');
    String columnComment = rs.getString('COLUMN_COMMENT');
    String dataType = rs.getString('DATA_TYPE');
    System.out.println('Column name: ' + columnName + ', Column comment: ' + columnComment + ', Data type: ' + dataType);
}

其中,INFORMATION_SCHEMA.COLUMNS 表存储了所有表的列信息,通过指定 TABLE_SCHEMA 和 TABLE_NAME 可以获取指定表的列信息。

Java 获取数据库表结构信息:表名、注释、列名、列注释、数据类型

原文地址: https://www.cveoy.top/t/topic/nXQu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录