オープンソースで作る Java+DB

特集 オープンソースで作るJava+DB
第2回 コードから学ぶJSPのデータベースアクセスの基礎 (1/8)

この特集では、JSPによるDBアクセス方法を具体的なソースコードと照らし合わせて解説する。掲示板の作成を基に、データベースとの関わりの基礎を紹介していこう。

 特集「オープンソースで作るJava+DB」の第1回目では、PostgreSQLをインストールしてpsqlコマンドを使い、手入力によるクエリー(SQL文)の実行、そしてデータベースを操る方法についてを解説してきた。

 今回の第2回目では、JSPを使ってWebアプリケーションからデータベースを操る方法までの基礎を紹介していこう。例として、掲示板を作る課程のサンプルコードを挙げる。

まずはJDBCのアクセスタイプを知る

 Javaからデータベースにアクセスするには、JDBCを用いる。JDBCはJava2 SDKに含まれているものの、Javaからデータベースにアクセスするためのインタフェースであり、実際にデータベースにアクセスするためには、利用するデータベースソフト用のJDBCドライバが必要だ。たとえば、PostgreSQLに接続するのであればPostgreSQL用のJDBCドライバ、Oracleデータベースに接続するならばOracle用のJDBCドライバが必要となる。

 現在提供されている主要なJDBCドライバの一覧は、http://java.sun.com/j2ee/ja/jdbc/から検索することができる。これらのJDBCドライバには、次の4タイプがある。

  • タイプ1

     既存の(Javaではなくネイティブコードで書かれた)データベースドライバとJDBCとを中継するためのドライバ。

  • タイプ2

     (Javaではなく、C++などの)ネイティブコードで記述されたドライバ。

  • タイプ3

     データベースエンジンに対して、ネットワーク通信で接続するJavaで記述されたドライバ。

  • タイプ4

     データベースと直接やりとりするJavaで記述されたドライバ。

 ここで注意したいのは、「タイプ1」と「タイプ2」の場合には、Java以外のコードが含まれるという点だ。すなわち、タイプ1やタイプ2のドライバは、OSに依存する。

 それに対して、タイプ3やタイプ4のドライバは、Javaで記述されているため、OSに依存せず、Javaが動作する環境ならば、どのようなOSでも動作するのだ。

PostgreSQL用のJDBCドライバをインストールする

 今回は、データベースとして、前回インストールしたPostgreSQLを用いる。PostgreSQL用のJDBCドライバは、前回説明したRPMパッケージ――postgresql-jdbc-7.3.3-1PGDG.i386.rpm――に含まれているので、これを用いればよい。

One Point!

RPMパッケージではなく、単体でダウンロードしたいということであれば、http://jdbc.postgresql.org/ からダウンロードが可能だ。

 postgresql-jdbc-7.3.3-1PGDG.i386.rpmをインストールすると、/usr/share/pgsqlディレクトリに、次の3つのファイルがコピーされる。

pg73b1jdbc1.jar
pg73b1jdbc2.jar
pg73b1jdbc3.jar

 これらが、PostgreSQL用JDBCドライバの実体だ。この3つのjar形式ファイルは、それぞれJDBC1.0、JDBC 2.0、JDBC 3.0のAPIに準拠したものに対応している。すべてを利用する必要はなく、利用したいJDBCバージョンのものをひとつだけ利用すればよい。

 JDBC1.0は、Java2以前のJDK 1.1用のものなので、現在ではもはや使われない。Java2(J2SE 1.2以降)の場合には、JDBC2.0かJDBC3.0を用いる。また、JDBC3.0はJ2SE 1.4からサポートされた比較的新しいものだ。

 JDBC2.0でもJDBC3.0でもどちらでも構わないが、今回は、JDBC3.0を使うことにする。つまり「pg73b1jdbc3.jar」ファイルを用いることにする。

 そこで事前準備として、pg73b1jdbc3.jarファイルに対してCLASSPATHを設定しておくか、pg73b1jdbc3.jarファイルをJSPから参照可能な場所にコピーしておく。Tomcat4上で利用するならば、次のように、/var/tomcat4/common/libディレクトリに、pg73b1jdbc3.jarファイルをコピーしておくのが簡単な方法だ。

# cp /usr/share/pgsql/pg73b1jdbc3.jar /var/tomcat4/common/lib/

 PostgreSQL用のJDBCドライバは、タイプ3であり、Fig.1のように動作する。

Fig.1 PostgreSQLのJDBCドライバの動作

fig01.gif

 Fig.1に示したように、PostgreSQLのJDBCドライバは、PostgreSQLの本体であるpostmasterとTCP/IPで通信する。これにより、第1回目で解説した手順でPostgreSQLがTCP/IPの接続を受け付けるようになっていれば、これ以上の設定が必要ない。

      | 1 2 3 4 5 6 7 8 | 次のページへ

[大澤文孝,ITmedia]