データベースに接続する前に、ドライバを読み込まなくてはいけません。 2 つの方法をとることができ、どちらが最適なのかは作成するコードに依 存します。
最初の方法では、コードの中で明示的に Class.forName() メソッドを使って ドライバを読み込みます。Postgres の場合は、 次のように使います。
Class.forName("postgresql.Driver");これでドライバが読み込まれます。読み込まれると、ドライバは自動的に自 分自身を JDBC に登録します。
注意: forName() は ClassNotFoundException を投げま すので、ドライバが利用できなかった場合にこの例外を捕らえなければなりま せん。
これは最も一般的に使われる方法ですが、そのコードは Postgres だけでしか使えなくなります。今後 他のデータベースにアクセスする可能性があり、また、拡張機能を使用しな いのならば、2 番目の方法を勧めます。
2 番目の方法は、-D 引数を使用して、ドライバをパラメータとして JVM の 起動時に渡すことです。
例:
% java -Djdbc.drivers=postgresql.Driver example.ImageViewer
この例では、JVM はその初期化段階の一部としてドライバの読み込みを 試みます。読み込みが完了したところで、ImageViewer が起動します。
さて、コードをコンパイルし直すことなく他のデータベースにも使うことが できますので、この方法は前者よりも優れています。次節で示す URL のみを 変更することになります。
最後に、コード内で接続を開こうとした時に No driver available が投げられた場合、大抵、ド ライバがクラスパスにないこと、もしくは、パラメータの値が正しくない ことが原因です。