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

时间:2016-02-02 05:24:56

标签: java 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"

我已经搜索过stackoverflow但没有找到最终解决方案。

已查看How to get driver class name (not driver name) from jdbc connection

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

Connection conn = DriverManager.getConnection(...); 

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

答案 1 :(得分:0)

尝试以下方法:

conn.getMetaData().getDriverName();

其他几种方法可用:

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