Plants by WebSphere



始めに
データベース・テーブルの場所
ソース・コードの場所
コーディング・メモのレビュー

始めに

Plants by WebSphere サンプルの固有の E メール・アドレスとパスワードは、 「ログイン」ページで「ここで個人アカウントを登録」をクリックすることによって作成できます。 さらに、以下のテーブルに示すように、 Plants by WebSphere サンプルで使用するための、 デフォルトの E メール・アドレスとパスワードが存在します。


E メール・アドレス plants@plantsbywebsphere.ibm.com
パスワード plants

データベース・テーブルの場所

このサンプルのデータベース・テーブルは、CUSTOMER、INVENTORY、ORDERINFO、ORDERITEM、IDGENERATOR、BACKORDER、および SUPPLIER です。これらのテーブルは、PLANTSDB データベースにあります。 PLANTSDB データベースは、 PlantsByWebSphere.ear ファイル中にあり、profile_root/installedApps/cell name/PlantsByWebSphere.ear/Database/PLANTSDB ディレクトリーに置かれています。ここで、cell name は、アプリケーションがインストールされるセルの名前です。

以下の SQL ステートメントでテーブル・レイアウトを確認してください。


	CREATE TABLE CUSTOMER
  	 (CUSTOMERID VARCHAR(250) NOT NULL,
   	 PASSWORD VARCHAR(250),
   	 FIRSTNAME VARCHAR(250),
   	 LASTNAME VARCHAR(250),
   	 ADDR1 VARCHAR(250),
   	 ADDR2 VARCHAR(250),
   	 ADDRCITY VARCHAR(250),
   	 ADDRSTATE VARCHAR(250),
   	 ADDRZIP VARCHAR(250),
   	 PHONE VARCHAR(250));
ALTER TABLE CUSTOMER ADD CONSTRAINT PK_CUSTOMER PRIMARY KEY (CUSTOMERID); CREATE TABLE INVENTORY ( INVENTORYID VARCHAR(250) NOT NULL, NAME VARCHAR(250), HEADING VARCHAR(250), DESCRIPTION VARCHAR(250), PKGINFO VARCHAR(250), IMAGE VARCHAR(250), IMGBYTES LONG BIT VARYING, PRICE REAL, COST REAL, CATEGORY INTEGER, QUANTITY INTEGER, NOTES VARCHAR(250), ISPUBLIC INTEGER, MINTHRESHOLD INTEGER NOT NULL, MAXTHRESHOLD INTEGER NOT NULL); ALTER TABLE INVENTORY ADD CONSTRAINT PK_INVENTORY PRIMARY KEY (INVENTORYID); CREATE TABLE ORDER1 ( ORDERID VARCHAR(250) NOT NULL, SELLDATE VARCHAR(250), BILLNAME VARCHAR(250), BILLADDR1 VARCHAR(250), BILLADDR2 VARCHAR(250), BILLCITY VARCHAR(250), BILLSTATE VARCHAR(250), BILLZIP VARCHAR(250), BILLPHONE VARCHAR(250), SHIPNAME VARCHAR(250), SHIPADDR1 VARCHAR(250), SHIPADDR2 VARCHAR(250), SHIPCITY VARCHAR(250), SHIPSTATE VARCHAR(250), SHIPZIP VARCHAR(250), SHIPPHONE VARCHAR(250), CREDITCARD VARCHAR(250), CCNUM VARCHAR(250), CCEXPIREMONTH VARCHAR(250), CCEXPIREYEAR VARCHAR(250), CARDHOLDER VARCHAR(250), SHIPPINGMETHOD INTEGER NOT NULL, PROFIT REAL NOT NULL, CUSTOMERID VARCHAR(250)); ALTER TABLE ORDER1 ADD CONSTRAINT PK_ORDER1 PRIMARY KEY (ORDERID); CREATE TABLE ORDERITEM ( INVENTORYID VARCHAR(250) NOT NULL, NAME VARCHAR(250), PKGINFO VARCHAR(250), PRICE REAL NOT NULL, COST REAL NOT NULL, CATEGORY INTEGER NOT NULL, QUANTITY INTEGER NOT NULL, SELLDATE VARCHAR(250), ORDER_ORDERID VARCHAR(250) NOT NULL); ALTER TABLE ORDERITEM ADD CONSTRAINT PK_ORDERITEM PRIMARY KEY (INVENTORYID, ORDER_ORDERID); CREATE TABLE IDGENERATOR (IDNAME VARCHAR(250) NOT NULL, IDVALUE INTEGER NOT NULL); ALTER TABLE IDGENERATOR ADD CONSTRAINT PK_IDGENERATOR PRIMARY KEY (IDNAME); CREATE TABLE BACKORDER ( BACKORDERID VARCHAR(250) NOT NULL, INVENTORYID VARCHAR(250), QUANTITY INTEGER NOT NULL, STATUS VARCHAR(250), LOWDATE BIGINT NOT NULL, ORDERDATE BIGINT NOT NULL, SUPPLIERORDERID VARCHAR(250) NULL); ALTER TABLE BACKORDER ADD CONSTRAINT PK_BACKORDER PRIMARY KEY (BACKORDERID); CREATE TABLE SUPPLIER ( SUPPLIERID VARCHAR(250) NOT NULL, NAME VARCHAR(250), STREET VARCHAR(250), CITY VARCHAR(250), USSTATE VARCHAR(250), ZIP VARCHAR(250), PHONE VARCHAR(250), URL VARCHAR(250)); ALTER TABLE SUPPLIER ADD CONSTRAINT PK_SUPPLIER PRIMARY KEY (SUPPLIERID);

ソース・コードの場所

ソース・コードは以下のディレクトリーにあります。
profile_root/samples/src/PlantsByWebSphere ディレクトリー。

z/OS カスタマー: サンプル・アプリケーションは z/OS プラットフォームでは 構築されないため、サンプルのソース・コード・ツリーは z/OS プラットフォームでは提供されません。

コーディング・メモのレビュー

概説
サーブレット
エンタープライズ Bean

概説

Plants by WebSphere サンプルには、以下のテクノロジーが組み込まれています。

Plants by WebSphere アプリケーションは、一連の JSP ページと HTML ページを通じてサポートされます。これらのページは、サーブレット AccountServlet、ShoppingServlet、ImageServlet、および AdminServlet と通信します。サーブレットは様々な エンタープライズ Bean ビジネス・メソッドを使用し、 メソッドは必要に応じて順にデータベースからデータにアクセスします。一般に、トランザクションの数を減らすために、エンティティー Bean とのインターフェースには、 ステートレス・セッション Bean が使用されます。

サーブレット

次のセクションでは、このアプリケーション内で使用されるサーブレットについて説明します。

ShoppingServlet

ShoppingServlet サーブレットは、ブラウザーと エンタープライズ Bean の間の対話の大部分を処理します。この対話には、inventory、shopping cart、および order 機能が含まれます。参照する買物カテゴリーの選択では、 関連する Inventory オブジェクトのすべてを検出し表示するために、Catalog セッション Bean が使用されます。また項目の詳細情報の表示も、Inventory CMP エンティティー Bean から情報を取得するために、Catalog セッション Bean を使用して行われます。

ショッピング・カートに項目を追加すると、ShoppingCart ステートフル・セッション Bean が 作成されます。Catalog セッション Bean は、Inventory データを取得して、 その項目を ShoppingCart Bean に入れます。ショッピング・カートの表示と更新は、 ShoppingCart ステートフル・セッション Bean を使用して行われます。

請求と配送情報の入力後、ShoppingCart Bean は新しい Order CMP エンティティー Bean を作成します。清算手順を完了すると、JavaMail API を使用して確認 E メールを送信するために、 Mailer ステートレス・セッション Bean が作成されます。

ImageServlet

ImageServlet サーブレットは、商品の画像を取得してデータベースに入れます。 サーブレットは、 JSP ページや HTML ページからの画像をデータベースから取得し、HTTP 応答を介してブラウザーに戻します。

AdminServlet

AdminServlet サーブレットは、ユーザー (ブラウザー) からのデータベース再取り込み要求を処理します。

help.jsp ページからのデータ再取り込み要求を処理中に、 AdminServlet サーブレットは ResetDB という名前の Bean-managed persistence (BMP) Bean を 作成します。この Bean はすべてのデータベース・テーブルを削除して、 pbw.properties プロパティー・ファイルからの初期データ値を テーブルに再取り込みします。

エンタープライズ Bean

このアプリケーションで使用されている エンタープライズ Bean についての情報を以下に示します。

Catalog

Catalog は、ステートレス・セッション Bean です。 これは、 Inventory container-managed persistance エンティティー Bean (CMP) への 基本アクセスです。ステートレス・セッション Bean は一般にエンティティー Bean データにアクセスし、 使用されるトランザクションの数を制限します。 Catalog セッション Bean は、1 つ以上の Inventory Bean から情報を 取得するためのビジネス・メソッドを持っています。在庫項目を追加および除去するための メソッドがあります。Catalog セッション Bean も既存の Inventory Bean を変更するためのメソッドを持っています。

Customer

Customer は CMP エンティティー Bean です。これには、カスタマーに必要な アカウント・データが含まれており、そのデータを管理します。 Customer エンティティー Bean は、 カスタマー情報を作成、検索、更新するためのメソッドのほか、 パスワードを検証したり、Customer エンティティー Bean のフィールドを 取得するためのメソッドを持っています。

Inventory

Inventory は CMP エンティティー Bean です。このエンティティー Bean には在庫項目データが含まれており、 そのデータを管理します。データ・フィールドの検索、作成、取得、 および設定するためのメソッドがあります。

Login

Login は、ステートレス・セッション Bean です。 このセッション Bean は、Customer CMP エンティティー Bean と対話して、カスタマー・アカウントを作成および更新します。

Mailer

Mailer は、ステートレス・セッション Bean です。 このセッション Bean は、JavaMail API を使用して、注文の確認 E メールを作成および送信します。

Order

Order は、CMP エンティティー Bean です。このセッション Bean には注文データが含まれており、 そのデータを管理します。データ・フィールドの検索、作成、および取得するためのメソッドがあります。

OrderItem は、CMP エンティティー Bean です。この エンティティー Bean には 1 つの注文項目が含まれており、 それを管理します。データ・フィールドの検索、作成、および取得するためのメソッドがあります。

ReportGenerator

ReportGenerator は ステートレス・セッション Bean です。 このセッション Bean は、注文の情報を基に報告書を生成します。ReportGenerator セッション Bean は、 Order CMP エンティティー Bean と対話します。報告書は、設定された日付範囲の売れ筋項目と、 設定された日付範囲での売れ筋郵便番号で構成されます。

ShoppingCart

ShoppingCart は、ステートフル・セッション Bean です。このセッション Bean は、HTTP セッションを介して購入する在庫項目のリストを保守します。ShoppingCart セッション Bean は、 在庫項目を追加、除去、および更新するためのビジネス・メソッドを持っています。 また、ShoppingCart セッション Bean は、 カスタマーが購入を完了する準備ができたときに新しい Order CMP エンティティー Bean を作成するためのメソッドを持っています。

ResetDB

ResetDB は、BMP エンティティー Bean です。この エンティティー Bean は、データベース・テーブル内のすべての行を削除します。