JDBCドライバのロードは、反射を理解しました

反射:Class.forNameの("はcom.mysql.jdbc.Driver")

新しい方法:ドライバドライバ= 新しいドライバ()。//com.mysql.jdbc.Driver 

                          DriverManager.registerDriver(ドライバ)。

ソースの表示ドライバ

パブリック クラスドライバが延びNonRegisteringDriver実装に、java.sql.driver {
     // 
    // 登録する自分自身とのDriverManager
     //
     静的{
         試み{ 
            java.sql.DriverManager.registerDriver(新しいドライバ()); 
        } キャッチ(のSQLException E){
             スロー 新しい(のRuntimeExceptionの" ドライバを登録することはできません!" ); 
        } 
    } 

    / * * 
     *新しいドライバを構築し、DriverManagerのに登録
     * 
     * @throwsのSQLException
     *場合、データベースエラーが発生します。
     * / 
    公共のドライバは()のSQLExceptionスロー{
         // Class.forNameのに必要な()のnewInstance()を。
    } 
  OK、それは実際にはコードの関数であると言うことである。

 java.sql.DriverManager.registerDriver (新しい新しいドライバ());

 



また、ドライバオブジェクトの2つの例に相当する静的なブロック内部を行う第二のタイプのドライバドライバ=新しいドライバ()。

第二のタイプは、ドライバのドライバ=新しいドライバ()ジャーmasqlからプロセスが高い結合をコンパイルしないであろう場合、依存関係データベース(ドライバパッケージをインポートします)の特定の種類を生成します。

 

リフレクション:

リフレクションは、カップリングを減少させ、依存性のいくつかの種類に回避することができ

おすすめ

転載: www.cnblogs.com/-answer/p/12412039.html