PostgreSQLポータルサイト <Let's Postgres> http://lets.postgresql.jp/
入門から運用、チューニングノウハウ、新機能の解説など、幅広い内容の技術解説記事をお読みいただけます。

第 31章JDBC インタフェース

JDBC は、Java 1.1 以降のコア API です。 SQL に準拠したデータベースへのインタフェースの標準セットを提供します。

PostgreSQL は、タイプ 4JDBC ドライバを提供します。 タイプ 4 とは、ドライバが Pure Java で記述され、データベース自身のネットワークプロトコルで通信を行うことを意味します。 このため、ドライバはプラットフォームに依存しません。一度コンパイルを行えば、そのドライバはどのシステムでも使用することができます。

本章は JDBC プログラミングの完全な手引きを意図していませんが、これから使い始めようという場合に役にたちます。より詳細については、標準の JDBC API の資料を参照してください。また、ソースに付随している例も見てください。

31.1. JDBC ドライバのセットアップ

本節では、JDBCインタフェースを使用するプログラムの作成もしくは実行を行う前に必要な手順について説明します。

31.1.1. ドライバの入手

コンパイルされたバージョンのドライバは、PostgreSQL JDBC の Webサイト から入手できます。

また、ソースからドライバを構築することもできますが、これを行う必要があるのはソースコードに変更を加える場合のみです。詳細については、PostgreSQLインストール手順を参照してください。インストール後、ドライバが PREFIX/share/java/postgresql.jar に作成されているはずです。 作成されるドライバは実行した Java のバージョンに合わせられます。JDK 1.1 を使用する場合は、JDBC 1 仕様をサポートするバージョンが作成され、JDK 1.2 または JDK 1.3 を使用する場合は、JDBC 2 仕様をサポートするバージョンが、JDK1.4を使用する場合はJDBC 3 仕様をサポートするバージョンが構築されます。

31.1.2. クラスパスの設定

ドライバを使うためには、JAR ファイル (ソースからコンパイルした場合は postgresql.jar、そのほかの場合はそれぞれ JDBC 1、JDBC 2、JDBC 3 バージョンである、pg7.4jdbc1.jarpg7.4jdbc2.jarpg7.4jdbc3.jar)をクラスパスに含む必要があります。そのためには、CLASSPATH 環境変数で示した場所に置くか、java コマンドのオプションで指定します。

例として、JDBC ドライバを使用してデータベースにアクセスするアプリケーションがあり、それが /usr/local/lib/myapp.jar にあるとします。PostgreSQL JDBC ドライバは /usr/local/pgsql/share/java/postgresql.jar としてインストールされます。このアプリケーションを実行するには次のようにします。

export CLASSPATH=/usr/local/lib/myapp.jar:/usr/local/pgsql/share/java/postgresql.jar:.
java MyApp

アプリケーション内部からドライバをロードする方法は項31.2で説明します。

31.1.3. JDBC のためのデータベースの準備

Java は TCP/IP 接続しか使用しませんので、PostgreSQL サーバは TCP/IP 接続を受け入れるように構成しなければなりません。この構成は postgresql.conf ファイルで tcpip_socket = true と設定するか、postmaster の起動時に -i オプションを与えることで可能になります。

また、pg_hba.conf ファイルによるクライアント認証の設定が必要かもしれません。詳細は第19章を参照してください。JDBC ドライバは、trustidentpasswordmd5crypt 認証方法をサポートします。