第 31章JDBC インタフェース

目次
31.1. JDBC ドライバのセットアップ
31.1.1. ドライバの入手
31.1.2. クラスパスの設定
31.1.3. JDBC のためのデータベースの準備
31.2. ドライバの初期化
31.2.1. JDBCのインポート
31.2.2. ドライバの読み込み
31.2.3. データベースへの接続
31.2.4. 接続を閉じる
31.3. 問い合わせの発行と結果の処理
31.3.1. カーソルに基づいて結果を取り出す
31.3.2. Statement または PreparedStatement インタフェースの使用
31.3.3. ResultSet インタフェースの使用
31.4. 更新の実行
31.5. ストアド関数の呼び出し
31.5.1. CallableStatementインタフェースの使用
31.5.2. ストアド関数からResultSetを取り出す
31.6. データベースオブジェクトの作成と変更
31.7. バイナリデータの格納
31.8. PostgreSQLJDBC APIへの拡張
31.8.1. 拡張機能へのアクセス
31.8.2. 幾何データ型
31.8.3. ラージオブジェクト
31.9. マルチスレッドあるいはサーブレット環境におけるドライバの使用
31.10. 接続プールとデータソース
31.10.1. 概要
31.10.2. アプリケーションサーバ: ConnectionPoolDataSource
31.10.3. アプリケーション: DataSource
31.10.4. データソースとJNDI
31.11. 今後に読むべきもの

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 を使用する場合は、JDBC1 仕様をサポートするバージョンが作成され、JDK 1.2 または JDK 1.3 を使用する場合は、JDBC2仕様をサポートするバージョンが、JDK1.4を使用する場合はJDBC3仕様をサポートするバージョンが構築されます。

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認証方法をサポートします。