Java DatabaseMetaData接口

DatabaseMetaData接口提供了获取数据库元数据的方法, 例如数据库产品名称, 数据库产品版本, 驱动程序名称, 表总数的名称, 视图总数的名称等。
DatabaseMetaData接口的常用方法

  • public String getDriverName()引发SQLException:它返回JDBC驱动程序的名称。
  • public String getDriverVersion()引发SQLException:它返回JDBC驱动程序的版本号。
  • public String getUserName()引发SQLException:它返回数据库的用户名。
  • public String getDatabaseProductName()引发SQLException:它返回数据库的产品名称。
  • public String getDatabaseProductVersion()引发SQLException:它返回数据库的产品版本。
  • public ResultSet getTables(字符串目录, 字符串schemaPattern, 字符串tableNamePattern, 字符串[]类型)引发SQLException:它返回指定目录表的描述。表格类型可以是TABLE, VIEW, ALIAS, SYSTEM TABLE, SYNONYM等。
如何获取DatabaseMetaData的对象:
【Java 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); } } }

Output: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); }} }

    推荐阅读