Java教程-Java DatabaseMetaData接口
Java DatabaseMetaData接口
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);
}
}
}