1

我编写了一个简单的代码来测试 oracle 驱动程序是否已经注册。

private boolean isDriverRegistered(){
    boolean isRegistered = false;
    Enumeration<Driver> loadedDrivers = DriverManager.getDrivers();
    while(loadedDrivers.hasMoreElements()){     
        Driver driver = loadedDrivers.nextElement();
        if (driver instanceof OracleDriver){
            isRegistered = true;
            break;
        }
    }
    return isRegistered;
}

有人可以建议任何其他更好的方法吗?

4

2 回答 2

1

Try a Class.forName() with the specific Oracle driver class name. If it can be loaded, it is surely registered.

于 2013-01-21T10:23:33.060 回答
1

我认为迭代很好,但是您可以使用acceptURL 方法而不是instanceof 检查(例如,避免编译时间依赖于Oracle 驱动程序):

http://docs.oracle.com/javase/7/docs/api/java/sql/Driver.html#acceptsURL%28java.lang.String%29

于 2013-01-21T10:42:23.113 回答