如何确定给定JDBC连接的数据库类型(名称)?

获取已连接的基础数据库的名称的一种方法是调用DatabaseMetaData接口的getDatabaseProductName()方法。此方法以String格式返回基础数据库的名称。

因此,要使用Java代码检索当前数据库的名称-

  • 使用getMetaData()方法检索当前Connection的DatabaseMetaData对象。

//检索元数据对象
DatabaseMetaData metaData = con.getMetaData();
  • 然后,使用DatabaseMetaData接口的getDatabaseProductName()方法获取您已连接的基础数据库的产品名称,如下所示:

//检索数据库的名称
String product_name = metaData.getDatabaseProductName();

示例

接下来的JDBC程序建立与数据库的连接,检索并打印基础数据库的名称。

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseMetaData_getDatabaseProductName {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获得连接
      String mysqlUrl = "jdbc:mysql://localhost/mydatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //检索元数据对象
      DatabaseMetaData metaData = con.getMetaData();
      //检索数据库的名称
      String product_name = metaData.getDatabaseProductName();
      System.out.println("Name of the underlying database: "+product_name);
   }
}

输出结果

Connection established......
Name of the underlying database: MySQL