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

繰り返しは問題ないと思いますが、 instanceof チェックの代わりにacceptsURLメソッドを使用できます(たとえば、コンパイル時のOracleドライバーへの依存を避けるため):

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

于 2013-01-21T10:42:23.113 に答える
1

Class.forName()特定の Oracle ドライバ クラス名で を試してください。ロードできれば確実に登録されています。

于 2013-01-21T10:23:33.060 に答える