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