DriverManager.getConnectionドライバのロード順序

924 ワード

ビジネスにはjdbc Driverクラスがプログラムに書き換えられているためである.com.jdbc.JlinsDriverとstaticを使用して直接
class.forName(com.jdbc.JlinsDriver);
他のビジネスニーズにより次のコードを実行する場合
Class.forName("oracle.jdbc.OracleDriver");
connection = DriverManager.getConnection(firstlyUrl, info);
プログラムがcomに直接ジャンプしたことに気づいた.jdbc.JlinsDriverクラスに行きましたが、
DriverManagerのソースコードを確認
毎回classforNameの場合はArrayListtheDriversにドライバを順番に入れ、getConnectionのたびに1番目からロードし、1番目の戻りが正しくなければ2番目にロードし、dirver実装クラスごとにacceptsURL(String url)メソッドが現在のurlが現在のドライバに合致しているかどうかを検証します.以下のコード(IBM JDK)、java標準jdkの実現方式は多くない.
for (Driver theDriver : theDrivers) {
                Connection theConnection = theDriver.connect(url, info);
                if (theConnection != null) {
                    return theConnection;
                }
            }