其他
Java教程-Java DatabaseMetaData接口
整理:Java面试那些事儿
DatabaseMetaData接口提供了获取数据库元数据的方法,例如数据库产品名称、数据库产品版本、驱动程序名称、表的总数、视图的总数等。
DatabaseMetaData接口常用方法
public String getDriverName() throws SQLException:返回JDBC驱动程序的名称。
public String getDriverVersion() throws SQLException:返回JDBC驱动程序的版本号。
public String getUserName() throws SQLException:返回数据库的用户名。
public String getDatabaseProductName() throws SQLException:返回数据库的产品名称。
public String getDatabaseProductVersion() throws SQLException:返回数据库的产品版本。
public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException:返回指定目录中表的描述。表类型可以是TABLE、VIEW、ALIAS、SYSTEM TABLE、SYNONYM等。
如何获取DatabaseMetaData对象:
Connection接口的getMetaData()方法返回DatabaseMetaData的对象。语法如下:
public DatabaseMetaData getMetaData() throws SQLException
DatabaseMetaData接口的简单示例:
import java.sql.*;
class Dbmd {
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
DatabaseMetaData dbmd = con.getMetaData();
System.out.println("Driver Name: " + dbmd.getDriverName());
System.out.println("Driver Version: " + dbmd.getDriverVersion());
System.out.println("UserName: " + dbmd.getUserName());
System.out.println("Database Product Name: " + dbmd.getDatabaseProductName());
System.out.println("Database Product Version: " + dbmd.getDatabaseProductVersion());
con.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
mathematicaCopy code
输出:Driver Name: Oracle JDBC Driver
Driver Version: 10.2.0.1.0XE
Database Product Name: Oracle
Database Product Version: Oracle Database 10g Express Edition
Release 10.2.0.1.0 -Production
专属福利
打印表总数的DatabaseMetaData接口示例:
import java.sql.*;
class Dbmd2 {
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
DatabaseMetaData dbmd = con.getMetaData();
String table[] = { "TABLE" };
ResultSet rs = dbmd.getTables(null, null, null, table);
while (rs.next()) {
System.out.println(rs.getString(3));
}
con.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
打印视图总数的DatabaseMetaData接口示例:
import java.sql.*;
class Dbmd3 {
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
DatabaseMetaData dbmd = con.getMetaData();
String table[] = { "VIEW" };
ResultSet rs = dbmd.getTables(null, null, null, table);
while (rs.next()) {
System.out.println(rs.getString(3));
}
con.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
我就知道你会点赞+“在看”