広告 |
---|
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 2010年01月10日 Java総合講座 - 初心者から達人へのパスポート vol.186 セルゲイ・ランダウ バックナンバー: http://www.flsi.co.jp/Java_text/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ------------------------------------------------------- ・現在、このメールマガジンは以下の2部構成になっています。 [1] 当初からのコース:毎週日曜の夜に発行 これは現在、中級レベルになっています。 [2] 2009年11月開講コース:毎週水曜の夜に発行 これは現在、初心者向けのレベルになっています。 ・このメールマガジンは、画面を最大化して見てください。 小さな画面で見ていると、不適切な位置で行が切れてしまう など、問題を起すことがあります。 ・このメールマガジンに掲載されているソース・コード及び 文章は特に断らない限り、すべて筆者が著作権を所有してい ます。また、これらのソース・コードは学習用のためだけに 提供しているものです。 ------------------------------------------------------- ======================================================== ◆ 01.Strutsのアプリケーション開発 ======================================================== では、これから少し本格的なStrutsのアプリケーションを作っていきましょう。 以前vol.079〜vol.103で作成したのと同様のインターネット・ショッピングの WebアプリケーションをStrutsを使って作っていきます。(どんなアプリケー ションだったか忘れた人はvol.079〜vol.103をサッと復習して下さい。) ただし、まったく同じ内容では芸がないので、今回は以下の機能を追加して、 より複雑なシステムにします。 ・ユーザー登録(会員登録)をしなくてもショッピングができるようにする。 ・ユーザーID(顧客番号)はお客様が決められるようにする。ただし、既存の ユーザーIDを重複して登録することはできないものとする。 ・ユーザーのログイン時にはパスワードのチェックも行う。 ・支払い方法を選択可能とし、今回は(1)クレジットカード(2)銀行振込のどちらか の選択式とする。 ・注文状況を管理する機能も追加する。 ・国際化に対応したアプリケーションとし、日本語以外の言語でのWebページ表示を 可能とする。 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ では、データベースの作成作業から始めましょう。 テーブルは基本的にはvol.080〜vol.081と同様の内容ですが、追加された機能 もあるため、少しカラム等を変更(あるいは追加)します。 まず、お客様(User)のテーブルは下記のような構造にしましょう。 [テーブル名]:USER [カラム]: U_TYPE(ユーザーの種類、文字[M=会員、T=一時的顧客]、プライマリー・キー(主キー)) USERID(ユーザーID、文字列、プライマリー・キー(主キー)) PASS(パスワード、バイナリー) NAME(顧客名、文字列) ZIPCODE(郵便番号、文字列) ADDRESS(住所、文字列) 続いて、商品カテゴリー(Category)のテーブルは下記のようにしましょう。 (これは今回新たに追加したテーブルです。) [テーブル名]:CATEGORY [カラム]: NUM(カテゴリー番号、文字列、プライマリー・キー) NAME(カテゴリー名、文字列) 続いて、商品(Item)のテーブルは下記のようにしましょう。 [テーブル名]:ITEM [カラム]: NUM(商品番号、文字列、プライマリー・キー) NAME(商品名、文字列) PRICE(価格、整数) IMAGE(商品の写真のファイル名) C_NUM(商品のカテゴリー番号、文字列、外部キー) QUANTITY(在庫数、整数) では、次に注文(Order)のテーブルのほうですが、これは、 注文の顧客や注文日などを記録する [テーブル名]:ORDERHEADER [カラム]: O_NUM(注文番号、整数、プライマリー・キー) O_DATE(注文日、日付) U_TYPE(購入者のユーザーの種類、文字、外部キー) USERID(購入者のユーザーID、文字列、外部キー) PAYMETHOD(支払い方法、整数[0=クレジットカード払い、1=銀行振込]) PAYMENT(料金支払い、整数[0=未払い、1=支払い済み]) DELIVERY(商品の配達、整数[0=未配達、1=配達済み、2=配達中]) と、注文された個々の商品の情報を記録する [テーブル名]:ORDERITEM [カラム]: O_NUM(注文番号、整数、プライマリー・キーかつ外部キー) SEQ_NUM(注文内の品目の番号、整数、プライマリー・キー) I_NUM(商品番号、文字列、外部キー) QUANTITY(注文数、整数) という2つのテーブルで管理することにしましょう。 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ では、これらのテーブルを作成するためのSQLのファイルを以下のように 作成しましょう。 (1) [テーブル名]:USER -------------------------------------------------------- create table USER ( U_TYPE char(1) not null, USERID char(7) not null, PASS varbinary(20) not null, NAME varchar(20) not null, ZIPCODE char(8) not null, ADDRESS varchar(100) not null, primary key(U_TYPE, USERID) ); -------------------------------------------------------- これは、C:\JavaWorkSpaceフォルダーの中に、 USER.sql というファイル名で保管しておきましょう。 (2) [テーブル名]:CATEGORY -------------------------------------------------------- create table CATEGORY ( NUM char(5) not null, NAME varchar(20) not null, primary key(NUM) ); -------------------------------------------------------- これは、C:\JavaWorkSpaceフォルダーの中に、 CATEGORY.sql というファイル名で保管しておきましょう。 (3) [テーブル名]:ITEM -------------------------------------------------------- create table ITEM ( NUM char(5) not null, NAME varchar(100) not null, PRICE integer not null, IMAGE varchar(100), C_NUM char(5) not null, QUANTITY integer not null, primary key(NUM), foreign key(C_NUM) references CATEGORY (NUM) on delete cascade ); -------------------------------------------------------- これは、C:\JavaWorkSpaceフォルダーの中に、 ITEM.sql というファイル名で保管しておきましょう。 (4) [テーブル名]:ORDERHEADER -------------------------------------------------------- create table ORDERHEADER ( O_NUM integer not null, O_DATE date not null, U_TYPE char(1) not null, USERID char(7) not null, PAYMETHOD decimal(1,0) not null, PAYMENT decimal(1,0) not null, DELIVERY decimal(1,0) not null, primary key(O_NUM), foreign key(U_TYPE, USERID) references USER (U_TYPE, USERID) on delete cascade ); -------------------------------------------------------- これも先ほどと同じフォルダーに ORDERHEADER.sql というファイル名で保管しておきましょう。 (5) [テーブル名]:ORDERITEM -------------------------------------------------------- create table ORDERITEM ( O_NUM integer not null, SEQ_NUM integer not null, I_NUM char(5) not null, QUANTITY integer not null, primary key(O_NUM, SEQ_NUM), foreign key(O_NUM) references ORDERHEADER (O_NUM) on delete cascade, foreign key(I_NUM) references ITEM (NUM) on delete cascade ); -------------------------------------------------------- これも先ほどと同じフォルダーに ORDERITEM.sql というファイル名で保管しておきましょう。 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ では、さっそくデータベースを作成し、上記のテーブルを組み込んで いきましょう。 データベースの名前はSTRUSHOPにします。 以下のようにMySQLのコマンド・ライン・クライアントを起動して作業を行い ましょう。 (1) 「スタート」ボタン→「すべてのプログラム」→「MySQL」→ 「MySQL Server 5.0」→「MySQL Command Line Client」 を選択します。 (2) rootのパスワードを聞いてきますので rootpass を入力しましょう。 (3) データベースSTRUSHOPを作成しましょう。下記のコマンドを入力して ください。 create database STRUSHOP charset sjis; (4) 続いて、STRUSHOPデータベースを使用(接続)するために以下の コマンドを入力します。 use STRUSHOP (5) 以下のコマンドで(先ほど保管したファイルを使って)テーブルを作成 しましょう。 source C:\JavaWorkSpace\USER.sql source C:\JavaWorkSpace\CATEGORY.sql source C:\JavaWorkSpace\ITEM.sql source C:\JavaWorkSpace\ORDERHEADER.sql source C:\JavaWorkSpace\ORDERITEM.sql (6) 最後に、MySQLのコマンド・ライン・クライアントを終了しましょう。 quit ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ (次回に続く) では、今日はここまでにします。 ================================================ ◆ 02.前回の演習問題の答 ================================================ まず、Tomcat 6をEclipse上でWebサーバーとして起動できるように 登録作業を行いましょう。 まずEclipseでJ2EEパースペクティブを開いておいて下さい。 (1) メニュー・バーから「ファイル」→「新規」→「その他」を選択し、 「新規」ウインドウの中で「サーバー」配下の「サーバー」を選択し、 「次へ」ボタンをクリックします。 (2) 「新規サーバー」ウインドウの中で「Apache」配下の「Tomcat v6.0サーバー」 を選択し、「次へ」ボタンをクリックします。 (3) 「Tomcatインストール・ディレクトリー」欄にEclipseのインストールで一緒に 入ってきたTomcat5.5のディレクトリー C:\pleiades\tomcat6.0 を入力(または「参照」ボタンをクリックして画面から指定してもよい)し、 「完了」ボタンをクリックします。 これで、プロジェクト・エクスプローラーの中のServers配下に「ローカル・ ホストのTomcat v6.0サーバー-config」というフォルダーができ、また、 「サーバー」ビューの中に「ローカル・ホストのTomcat v6.0サーバー」 というのができているはずです。 これで、Tomcat Version 6をEclipse上で実行できる環境が用意されました。 では、続いてプロジェクトを作成しましょう。 プロジェクト・エクスプローラーの中で右クリックし、「新規」→「プロジェクト」 を選択します。 「新規プロジェクト」ウインドウの中で「Web」配下の「動的Webプロジェクト」 を選択し、「次へ」ボタンをクリックします。 「新規動的Webプロジェクト」ウインドウの中で「プロジェクト名」欄に StrutsWithTomcat6Test と入力し、「Target runtime」は Apache Tomcat v6.0 を選択し(このとき「構成」も自動的に「Apache Tomcat v6.0デフォルト構成」 に変わる)、「完了」ボタンをクリックします。 では、続いて「プロジェクト・エクスプローラー」の中にできたStrutsWithTomcat6Test (プロジェクト)の配下にあるWebContentを右クリックし、「新規」→「その他」 を選択します。 「新規」ウインドウの中で「Amateras」配下の「Struts」の配下に 「Strutsサポートの追加」という項目がありますので、それをを選択し、 「次へ」ボタンをクリックします。 「Strutsサポートの追加」ウインドウの中で「Webアプリケーションのルート」欄 が /StrutsWithTomcat6Test/WebContent になっていることを確認して下さい。(自分で設定を変更しない限り、WTP ではWebContentというフォルダーがWebアプリケーションのルートになって いるので、この通りの指定になっている必要があります。) 他の項目はそのまま(すべてにチェック・マークがついている状態)で、 「完了」ボタンをクリックします。 そうすると、WebContentのWEB-INF配下にStruts用の各種ファイルが自動生成 されます。 では続いてアプリケーションの開発に取りかかりましょう。 StrutsEtoTestプロジェクトとまったく同じソースを作成/編集していきます。 (StrutsEtoTestプロジェクトの各ファイルをそのままコピーしてもかまいません。) 完成したら実行してみましょう。Tomcatがv6.0になったこと以外は StrutsEtoTestのときとまったく同じ作業になります。 Tomcat v6.0でもまったく同様に動作することがわかりますね。 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ★ホームページ: http://www.flsi.co.jp/Java_text/ ★このメールマガジンは 「まぐまぐ(http://www.mag2.com)」 を利用して発行しています。 ★バックナンバーは http://www.flsi.co.jp/Java_text/ にあります。 ★このメールマガジンの登録/解除は下記Webページでできます。 http://www.mag2.com/m/0000193915.html ★このメールマガジンへの質問は下記Webページにて受け付けて います。わからない所がありましたら、どしどしと質問をお寄 せください。 http://www.flsi.co.jp/Java_text/ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Copyright (C) 2010 Future Lifestyle Inc. 不許無断複製 |