创建DatabaseMetaData对象
1
DatabaseMetaData meta = connection.getMetaData();
获取版本号
//主版本
int majorVersion = meta.getDatabaseMajorVersion();
//副版本
int minorVersion = meta.getDatabaseMinorVersion();
System.out.println(majorVersion);
System.out.println(minorVersion);
// 产品名和产品版本
String productName = meta.getDatabaseProductName();
String productVersion = meta.getDatabaseProductVersion();
System.out.println(productName);
System.out.println(productVersion);
列出所有表名
方法getTables()列出所有的表。
注意:传递的参数是null值。null表示返回所有的数据。
// 获取表名清单
String catalog = null;
String schemaPattern = null;
String tableNamePattern = null;
String[] types = null;
ResultSet result = meta.getTables(
catalog, schemaPattern, tableNamePattern, types );
while(result.next()) {
String tableName = result.getString(3);
System.out.println(tableName);
}
获取表字段名
使用getColumns()方法可以获取表的字段名。
使用时需要指定表名。
public static void main(String[] args) {
String url = “jdbc:mysql://127.0.0.1:3306/northwind”;
String user = “northwind”;
String password = “northwind”;
try (Connection connection = DriverManager.getConnection(url, user, password)) {
DatabaseMetaData meta = connection.getMetaData();
String catalog = null;
String schemaPattern = null;
String tableNamePattern = "employees";
String columnNamePattern = null;
ResultSet result = meta.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);
while (result.next()) {
String columnName = result.getString(4);
int columnType = result.getInt(5);
System.out.println("字段 "+columnName+" | 长度 "+columnType);
}
} catch (SQLException e) {
e.printStackTrace();
}
}