Servlet と JSP による Web アプリケーション(その 1)

さて今回からしばらくは、ServletJSP によるもっとも基本的な Web アプリケーションを作成してみます。まずはお約束の環境から。

Model を作ろう(その 1)

まずは取り扱うデータを用意します。MySQL をインストールし、menudb という名前のデータベーススキーマと scott というユーザーを作成してください。scott のパスワードは伝統にのっとって tiger とします。この辺の手順をいちいち解説していると長くなるので、やり方は各自調べてください。

以上の準備が済んだら、menudb にテーブルを作成します。今回は以下の書籍で使われているサンプルを使用します。

現場で使えるSQL 第2版 (DB Magazine SELECTION)

現場で使えるSQL 第2版 (DB Magazine SELECTION)

ただしそのままですと MySQL では使えないので書き変える必要があります。今回は全部のテーブルを使用するわけではないので、必要なテーブルのデータだけ抜き出しますが、できれば他のテーブルも作っておくといいでしょう(ただし SQL 文の書き変えは各自やること)。

CREATE TABLE 顧客マスタ (
    顧客ID     INTEGER NOT NULL,
    顧客名     VARCHAR(20) NOT NULL,
    連絡先     VARCHAR(20) NOT NULL,
    CONSTRAINT pk_kokyaku PRIMARY KEY (顧客ID)
);

INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (1, '(株)ワイキキソフト', '090-AAAA-AAAA');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (2, '鈴木商事', '090-BBBB-BBBB');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (3, '斎藤模型店', '090-CCCC-CCCC');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (4, 'マクロハード', '090-DDDD-DDDD');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (5, '(株)ランヌ', '090-EEEE-EEEE');

この SQL を実行すると「顧客マスタ」というテーブルとそのデータが menudb スキーマに作成されます。

Model を作ろう(その 2)

ここからはコーディング作業です。まず eclipse で Customers という名前で動的 Web プロジェクトを作成してください。もちろん localhostTomcat サーバの用意も忘れずに。

Servlet + JSP では Model を担当するのは Java Beans でした。さっそく作りましょう。

package jp.mydns.akanekodou.model;

public class Customer {
    private int id;
    private String name;
    private String phone;

    public Customer() { }
}

ここまで打ち込んでください(パッケージ名はお好みで変更してください)。Java Beans ではメンバ変数は private 変数とし、後で作る getter と setter でデータの出し入れをします。また、コンストラクタは必ず書く癖を付けましょう。今回は何もしないデフォルトコンストラクタと同じですが、書いておくと後で修正しやすいという一面もありますので。

さて、ここからは eclipse に任せましょう。editor 部分を右クリックして「Source」→「Generate Getters and Setters...」を選んで、getter と setter を作成してください。getId, setId, getName, setName, getPhone, setPhone という public メソッドが勝手に生成されたはずです。このメソッド名は getter および setter の命名規則に従って決められていて、必ずこう書かないといけないのですが、eclipse がそれを自動でやってくれるというわけです。

これで取り扱うデータの形式に対応する Java Beans はできました。まだロジックの部分が残っていますが、それは次の機会に。