JDBCドライバのロード

なんで今更こんなこと書いたかというと。。。

 //JDBCドライバのロード
 Class.forName("org.postgresql.Driver");

これがなんでロードなのかわからんと聞かれた。たしかにちゃんと説明されてないことが多いやね。ならコード見てみよう。一目瞭然。Classオブジェクトがロードされるからこれが動く単純なしくみ。

 static{
   try{
     java.sql.DriverManager.registerDriver(new Driver());
   }catch (SQLException e){
     e.printStackTrace();
   }
 }

なんでClass.forNameをつかうかといえば、使う側のコードがドライバの実装になるだけ依存しないように。

そしたらClassとかInstanceとかそこらの理解が壊滅してるのがわかった。
何がきっかけになるかわからないもので。色々気づいてよかったという話。