Java Connection getMetaData()方法与示例

通常,有关数据的数据称为元数据。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