他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

Chapter 8. JDBC インタフェース

Table of Contents
8.1. JDBC ドライバのセットアップ
8.1.1. ドライバの入手
8.1.2. クラスパスの設定
8.1.3. JDBC のためのデータベースの準備
8.2. ドライバの使用
8.2.1. JDBCのインポート
8.2.2. ドライバの読み込み
8.2.3. データベースへの接続
8.2.4. 接続を閉じる
8.3. 問い合わせの発行と結果の処理
8.3.1. Statement または PreparedStatement インタフェースの使用
8.3.2. ResultSetインタフェースの使用
8.4. 更新の実行
8.5. データベースオブジェクトの作成と変更
8.6. バイナリデータの格納
8.7. PostgreSQLJDBC API への拡張
8.7.1. 拡張機能へのアクセス
8.7.2. 幾何データ型
8.7.3. ラージオブジェクト
8.8. 複数のスレッド、サーブレット環境におけるドライバの使用
8.9. 今後に読むべきもの

著者: もともとは JDBC ドライバの原作者である、Peter T. Mount ()が書いたものです。

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

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

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

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

8.1.1. ドライバの入手

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

ソースからドライバを構築することもできます。とは言っても、ソースコードに変更を行った場合のみこれを行う必要がでてきます。

PostgreSQL バージョン 7.1 から、JDBC ドライバは Java ベースのパッケージの構築に特化した Ant というツールを使用して構築されるようになりました。AntAnt web サイト からダウンロードして、処理を行う前にインストールしなければなりません。コンパイル済みの Ant 配布物は、典型的に現在のユーザのホームディレクトリにある .antrc をその設定のために読み込みます。例えば、デフォルトとは異なる JDK を使用する場合は、以下のようにします。

JAVA_HOME=/usr/local/sun-jdk1.3
JAVACMD=$JAVA_HOME/bin/java

ドライバを構築するためには、configure--with-java を以下のように追加します。

$ ./configure --prefix=xxx --with-java ...

これにより、make/gmake または make/gmake install コマンドを実行した時に、 PostgreSQL の他のパッケージと一緒にドライバの構築とインストールが行われます。PostgreSQL の他のパッケージと一緒にではなく、ドライバのみを構築したい場合は、 src/interfaces/jdbc ディレクトリに移動し、make/gmake コマンドを実行して下さい。設定、構築処理に関する詳細については PostgreSQL インストール手順を参照して下さい。

ソースからドライバを構築した場合、作成される jar ファイルは postgresql.jar という名前になります。構築処理により src/interfaces/jdbc/jars ディレクトリにこのファイルが作成されます。作成されるドライバは実行した Java のバージョンに合わせられます。JDK 1.1 で構築した場合、jdbc1 仕様をサポートしたバージョンが作成されます。JAVA2 JDK(つまり、JDK 1.2 や JDK 1.3)で構築した場合、jdbc2 仕様をサポートしたバージョンが作成されます。

Note: javac ディレクトリを呼び出してドライバを構築しないで下さい。ドライバは性能を向上させるためいくつかの動的読み込み技術を使用しますが、 javac はこの目的に叶いません。makefile によっていくつかの設定情報が渡されますので、ant も直接呼び出さないで下さい。これらのパラメータを与えずに ant を直接実行すると、壊れたドライバになってしまいます。

8.1.2. クラスパスの設定

ドライバを使うためには、jar ファイル(ソースからコンパイルした場合は postgresql.jar、さもなくば、それぞれ jdbc1、jdbc2 バージョンである、jdbc7.2-1.1.jar または jdbc7.2-1.2.jar)をクラスパスに含む必要があります。そのためには、CLASSPATH 環境変数が指す場所に置くか、 java コマンドのオプションで指定します。デフォルトでは、 /usr/local/pgsql/share/java ディレクトリにインストールされます。configure を実行したとき --prefix オプションを使った場合やバイナリ配布を使用していた場合、異なる場所に置かれているかもしれません。

例として、天体データを含む巨大なデータベースにアクセスするために、 JDBC ドライバを使うアプリケーションがあるとします。このアプリケーションと JDBC ドライバを /usr/local/lib ディレクトリに、また、Java JDK/usr/local/jdk1.3.1 ディレクトリにインストールします。この場合、このアプリケーションを実行するには次のようにします。

export CLASSPATH=/usr/local/lib/finder.jar(1):/usr/local/pgsql/share/java/postgresql.jar:.
java Finder

(1)
finder.jarは、この Finder アプリケーションが含まれます。

アプリケーションの中からドライバを読み込むことについては、 Section 8.2 に示します。

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

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

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

Notes

[1]

訳注:src/interfaces/example/basic.javaのことです