はじめに


JDBCのおさらい

JDBCとは、JAVAとデータべ一スとのコネクションのことであり、JDBC APIからJDBCドライバを介して各べンダから提供されている様々なDBMS(Orace,PostgreSQL,MySQL,DB2など)にアクセスすることができる。JDBCドライバには様々な形態があり、また、ドライバ自体DBMSのべンダや個人など様々なところから配布されていたりするが、JDBCドライバはDBMSごとの違いを吸収してくれるように作られている(はずである)。よってプログラマはJDBC APIのみを気にしてプログラムを書けばよい。(のかな?)



今回の使用環境

その1(演習室)

データベースサーバ:VineLinux2.1.5(FTP版)と付属のPostgreSQL7.0.3
クライアント:VineLinux2.0(? Mac版) + Tomcat3.2.3
JDBCドライバはここから。( しいしせねっとPostgreSQL

その2(自宅)。

(旧)TurboLinux7 WorkStation(FTP版)と、PostgreSQL7.1.3をソースコードからJDBCドライバが使用できるようにコンパイルしたもの + Tomcat3.2.3
(新)Vine Linux 2.5と付属のPostgreSQLパッケージ + Tomcat3.2.4



プログラムの流れ

JDBCを使ったプログラムは大体以下のような流れになる。

JDBCドライバの読み込み

接続

SQL文の実行

切断



今回使用するSQL文

とりあえず今回のサンプルでは以下のようなSQL文を使用した。それぞれの実際の書き方については出てきた段階で説明する。

DDL文

CREATE TABLE
表の作成。それぞれの列のデータ型や、制約、他のテーブルの列とのリレー ションなどをここで定義する。削除はDROP TABLE文。
DML文
INSERT
レコードを追加する。削除はDELETE。
UPDATE
レコードの更新。
SELECT
レコードを条件によって抽出して表示。




下準備(PostgreSQLによる表の作成)

今回は以下のフォームをデータべ一スに格納するものを作成する。

そのための表をデータべースで定義する。このフォームサンプルでは、

入力フィールドname属性
新規か更新の選択select01 or 2
概念の選択button0"Concept" or "method" or "class"
対応URLname0一行の文字列
注釈textarea0長くてもOKな文字列

となっている。select0に関してはアクションの選択にすぎないからデータベースには登録しない。それ以外のフィールドに関してname属性をそのまま列名とした表を以下で定義する。

DBとの接続

以下のコマンドでデータベースサーバ上のPostgreSQLに接続する。

# psql -U ユーザ名 -h サーバのアドレス データべース名
password: *****
(サーバ上でpostmasterが起動していること。)

表の作成

ここでは可変長文字列型のbutton0とname0とtextarea0という名前のフィールドを持つt99xxxxx_tbl1という名の表を作成する。varcharは( )の中の数字を最大とする可変長文字列である。textは無制限。

CREATE TABLE t99xxxxx_tbl1 (
    button0 varchar(8),
    name0 varchar(255),
    textarea0 text
);

データ作成

ここでのINSERT文の使い方は見たまんま。t99xxxxx_tbl1表に先ほど定義した順番に列の値を入れていくという意味。

INSERT INTO t99xxxxx_tbl1 VALUES(
    'method',
  'http://www.hogehoge.com',
    'Very useful!!'
);
INSERT INTO t99xxxxx_tbl1 VALUES(
    'class',
    'http://www.hogehoge2.com',
    'Cool!!'
);

データの閲覧


SELECT * FROM t99xxxxx_tbl1;

これはt99xxxxx_tbl1という表の抽出レコードについて全ての列の値を表示しなさいという意味。*の部分で表示する列を指定することもできる。抽出条件を特に書いていないので全レコードが対象となる。実行結果は以下のようになる。


 button0 |          name0           |   textarea0
---------+--------------------------+---------------
 method  | http://www.hogehoge.com  | Very useful!!
 class   | http://www.hogehoge2.com | Cool!!
(2 rows)

終了

PostgreSQLとの接続を切断。

\q



→サンプルコードその1
←もどる