通常,有关数据的数据称为元数据。DatabaseMetaData接口提供了获取有关已连接数据库的信息的方法,例如数据库名称,数据库驱动程序版本,最大列长等。
Connection 接口的getMetaData()方法检索并返回DatabaseMetaData对象。其中包含有关您已连接的数据库的信息。通过使用获取的对象调用DatabaseMetaData接口的方法,可以获取有关数据库的信息,例如数据库名称,版本,驱动程序名称,用户名和url等。
此方法返回DatabaseMetaData对象,该对象保存有关基础数据库的信息。
获取基础数据库的DatabaseMetaData对象。
使用DriverManager类的registerDriver()方法将驱动程序注册为-
//注册驱动程序 DriverManager.registerDriver(new com.mysql.jdbc.Driver());
使用DriverManager类的 getConnection() 方法获取连接,如下所示:
//获得连接 String url = "jdbc:mysql://localhost/mydatabase"; Connection con = DriverManager.getConnection(url, "root", "password");
使用getMetaData()方法获取元数据对象,如下所示:
DatabaseMetaData dbMetadata = con.getMetaData();
接下来的JDBC程序与数据库建立连接,并检索有关基础数据库的信息,例如数据库名称,驱动程序名称,URL等。
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLException; public class Connection_getMetaData { public static void main(String args[]) throws SQLException { //注册驱动程序 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //获得连接 String url = "jdbc:mysql://localhost/mydatabase"; Connection con = DriverManager.getConnection(url, "root", "password"); System.out.println("Connection established......"); //创建DatabaseMetaData对象 DatabaseMetaData dbMetadata = con.getMetaData(); //invoke the supportsBatchUpdates() method. boolean bool = dbMetadata.supportsBatchUpdates(); if(bool) { System.out.println("Underlying database supports batch updates"); } else { System.out.println("Underlying database doesn’t support batch updates"); } //检索驱动程序名称 System.out.println("Driver name: "+dbMetadata.getDriverName()); //检索驱动程序版本 System.out.println("Database version: "+dbMetadata.getDriverVersion()); //检索用户名 System.out.println("User name: "+dbMetadata.getUserName()); //检索URL- System.out.println("URL for this database: "+dbMetadata.getURL()); } }
输出结果
Connection established...... Underlying database supports batch updates Driver name: MySQL-AB JDBC Driver Database version: mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} ) User name: root@localhost URL for this database: jdbc:mysql://localhost/mydatabase