参考:
https://dzone.com/articles/how-use-linkedin-market-your
表空间信息
https://coderanch.com/t/300498/databases/Java-find-List-tablespaces-database
getCatalogs()
存储过程
https://dev.mysql.com/doc/refman/5.7/en/routines-table.html
注释
https://dev.mysql.com/doc/refman/8.0/en/columns-table.html
外键
https://dev.mysql.com/doc/refman/5.5/en/constraint-foreign-key.html
package com.dataconnect.test.util; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SchemaDetailsTest { private static Logger log = LoggerFactory .getLogger(SchemaDetailsTest.class); public static void main(String args[]) throws Exception { String databaseName = "myDbName"; String userName = "username"; String password = "password"; String mySQLPort = "3306"; String hostUrl = "127.0.0.1"; // Setup the connection with the DB Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://" + hostUrl + ":" + mySQLPort, userName, password); // --- LISTING DATABASE SCHEMA NAMES --- ResultSet resultSet = conn.getMetaData().getCatalogs(); while (resultSet.next()) { log.info("Schema Name = " + resultSet.getString("TABLE_CAT")); } resultSet.close(); // --- LISTING DATABASE TABLE NAMES --- String[] types = { "TABLE" }; resultSet = conn.getMetaData() .getTables(databaseName, null, "%", types); String tableName = ""; while (resultSet.next()) { tableName = resultSet.getString(3); log.info("Table Name = " + tableName); } resultSet.close(); // --- LISTING DATABASE COLUMN NAMES --- DatabaseMetaData meta = conn.getMetaData(); resultSet = meta.getColumns(databaseName, null, tableName, "%"); while (resultSet.next()) { log.info("Column Name of table " + tableName + " = " + resultSet.getString(4)); } } }