📜  Java DatabaseMetaData接口

📅  最后修改于: 2020-10-13 01:26:12             🧑  作者: Mango

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,String []类型)引发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);}
}
}
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);}

}
}