JDBC詳細シリーズ(三)の確立接続

2137 ワード

文書ディレクトリ
JDBC詳細シリーズ(一)の流れで、データベースの接続を6つのステップに分解しました.
JDBCプロセス:第一歩:Driverクラスをロードし、データベースドライバを登録する.ステップ2:DriverManagerでurl、ユーザー名、パスワードを使用して接続を確立します.ステップ3:Connectionでsql文を使用してStatementオブジェクトを開きます.ステップ4:文を実行し、結果をresultSetに戻します.ステップ5:結果resultSetを処理する;ステップ6:リソースresultSet-"preparedStatement-"connectionを解放します.
  今回はDriverManagerで接続を確立します.前編で述べたJDBC 4.0自動ロードドライバはここで出典を見つけた.
JDBC 4.0 Drivers must include the file META-INF/services/java.sql.Driver.This file contains the name of the JDBC drivers implementation of java.sql.Driver
 static {
        loadInitialDrivers();
        println("JDBC DriverManager initialized");
    };

 loadInitialDrivers()このメソッドでは、クラスパスの下にあるすべてのjarパッケージのMETA-INF/services/java.sql.Driverファイルで定義されているクラスをロードできます.java.sql.Driverから継承する必要があります.
次にgetConnectionという方法について説明します.
When the method getConnection is called, the DriverManager will attempt to locate a suitable driver from amongst those loaded at initialization and those loaded explicitly using the same classloader as the current applet or application.

すなわち、メソッドgetConnectionを呼び出すと、DriverManagerは、初期化時にロードされたドライバと、現在のappletまたはアプリケーションと同じクラスのロードドライバから適切なドライバを明示的にロードしようとします.その後、対応するURLを使用して指定したデータベースに接続します.DriverManagerでは、次の3つの方法があります.
    getConnection(String url)
    getConnection(String url, Properties prop)
    getConnection(String url, String user, String password)

各メソッドには、データベースのアドレスを指すURLが含まれています.この3つの方法は一致しており、最初の方法であればurlにユーザー名とパスワードを携帯する必要があります.2つ目と3つ目は最後にアカウントとパスワードをPropertiesに入れたものです.3つの方法では、次のコードを見つけることができます.
java.util.Properties info = new java.util.Properties();
return (getConnection(url, info, Reflection.getCallerClass()));

  すなわち,最終的に呼び出されるのはgetConnection(url,info,Reflection.getCallerClass()という方法である.このメソッドの内部には、次のコードがあります.
Connection con = aDriver.driver.connect(url, info);

すなわち、ロードされたデータベースドライバから対応するドライバを見つけ、そのドライバの実装を使用して接続を確立します.接続を確立する関数は、データベース・ベンダーによって実現されます.  接続が確立されると、アプリケーションが指定したデータベースと対話できるようになります.その下層はsocketによって実現される.具体的なコードは分析しません.