如何在运行时从连接对象获取 JDBC 驱动程序类名



我已经创建了我的JDBC连接,如下所示:

java.sql.Connection conn =  java.sql.DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:DBSID", "DB_USER",
                    "DB_PASS");

如何在运行时获取JDBC驱动程序类名(例如"oracle.jdbc.driver.OracleDriver"),如下所示:

String driverClsName  = getDriverClsName(conn);
//e.g.  driverClsName = "oracle.jdbc.driver.OracleDriver"

我已经在堆栈溢出中搜索过,但没有找到最终的解决方案。

已查看 如何从 jdbc 连接获取驱动程序类名(不是驱动程序名称)

下面的方法中的代码应该是什么:

String getDriverClsName(Connection conn){
    //code here
}

我已经尝试过conn.getMetaData().getDriverName();它正在返回Oracle JDBC驱动程序

我的要求是显示有关应用程序中正在使用的当前驱动程序的信息(例如类名)。

DriverManager.getDriver(String)应该这样做:

Connection conn = DriverManager.getConnection(...); 
String originalURL = conn.getMetaData().getURL();
Driver drv = DriverManager.getDriver(originalURL);
String driverClass = drv.getClass().getName();

尝试以下方法:

conn.getMetaData().getDriverName();

其他几种可用的方法:

conn.getMetaData().getDriverVersion();
conn.getMetaData().getDriverMajorVersion();
conn.getMetaData().getDriverMinorVersion();

最新更新