ドライバのロード

データベースに接続できるようにするためにはまず、ドライバをロードしなければなりません。 2つの方法があり、どちらを使用すべきかどうかは作成するコードに依存します。

1番目の方法では、Class.forName()メソッドを使用して暗黙的にドライバをロードします。 PostgreSQL™の場合は以下のようにします。

Class.forName("org.postgresql.Driver");
これによりドライバがロードされ、そのロード中にドライバ自身が自動的にドライバをJDBCに登録します。

注意

forName()メソッドは、ドライバが利用できなかった場合にClassNotFoundExceptionをスローします。

これは最もよく使用される方法ですが、作成するコードがPostgreSQL™のみに制限されます。 作成するコードが今後他のデータベースシステムにアクセスする可能性があれば、または、PostgreSQL™固有の拡張を使用しないのであれば、2番目の方法を勧めます。

2番目の方法では、起動時に-D引数を使用して、ドライバをパラメータとしてJVMに渡します。 以下に例を示します。

java -Djdbc.drivers=org.postgresql.Driver example.ImageViewer
この例では、JVMは初期化段階でドライバのロードを試みます。 ロード後にImageViewerが起動されます。

この方法は、コードを再コンパイルすることなく他のデータベースパッケージを使用することができるという点でも優れています。 この時変更しなければならないのは、次節で説明する接続URLのみです。

本節の終わりとして、その後コードでConnectionを開く時に、No driver available SQLExceptionがスローされる場合があります。 これは、おそらくドライバがクラスパス内に存在しないこと、あるいは、パラメータの値が不正確であることが原因です。