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

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想