【分享】Mysql、SqlServer、Oracle、PostgreSQL、ClickHouse和PrestoDB获取元数据(表、字段信息)SQL
以下是使用不同数据库系统的JDBC API获取数据库元数据的示例代码。
import java.sql.*;
public class DatabaseMetaDataExample {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password)) {
// 获取数据库元数据
DatabaseMetaData metaData = conn.getMetaData();
// 打印数据库的一些基本信息
System.out.println("Database Product Name: " + metaData.getDatabaseProductName());
System.out.println("Database Product Version: " + metaData.getDatabaseProductVersion());
System.out.println("Driver Name: " + metaData.getDriverName());
System.out.println("Driver Version: " + metaData.getDriverVersion());
// 获取所有表名
ResultSet tables = metaData.getTables(null, null, "%", new String[] {"TABLE"});
while (tables.next()) {
System.out.println("Table: " + tables.getString("TABLE_NAME"));
}
// 获取特定表的所有列
String tableName = "mytable";
ResultSet columns = metaData.getColumns(null, null, tableName, "%");
while (columns.next()) {
System.out.println("Column: " + columns.getString("COLUMN_NAME") + ", Type: " + columns.getString("TYPE_NAME"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
确保在运行代码之前,已经添加了对应数据库的JDBC驱动依赖到项目中。例如,对于MySQL,你需要添加mysql-connector-java
的依赖。其他数据库也有相应的JDBC驱动。
评论已关闭