查看原文
其他

Java教程-Java DatabaseMetaData接口

点击关注👉 鸭哥聊Java 2023-08-31

整理: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

专属福利

👉点击领取:651页Java面试题库


打印表总数的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); } }
}


 
最近技术热文

我就知道你会点赞+“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存