Plants by WebSphere



入门
查找数据库表
查找源代码
查看编码注意事项

入门

在“登录”页上单击在此处注册您自己的帐户,您可为 Plants by WebSphere 样本创建唯一的电子邮件地址和密码。另外,在下表中提供了 Plants by WebSphere 样本的一个缺省电子邮件地址和密码:


电子邮件地址 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 平台上没有构建样本应用程序。

查看编码注意事项

概述
Servlet
企业 bean

概述

Plants by WebSphere 样本结合了以下技术:

通过一系列 JSP 页面和 HTML 页面支持 Plants by WebSphere 应用程序。这些页与以下 servlet 进行通信:AccountServlet、ShoppingServlet、ImageServlet 和 AdminServlet。servlet 通过使用各种企业 bean 业务方法按需访问数据库中的数据。通常,无状态会话 bean 用于与实体 bean 连接,以减少事务数。

Servlet

以下部分提供有关在此应用程序中使用的 servlet 的信息。

ShoppingServlet

ShoppingServlet servlet 处理浏览器和企业 bean 之间的大多数交互作用。此交互作用包括库存、购物车和订单功能。 选择要浏览的购物类别后,Catalog 会话 bean 将查找和显示所有相关的库存对象。使用 Catalog 会话 bean 获取 Inventory CMP 实体 bean 中的信息,也执行商品详细信息显示。

商品添加到购物车后,将创建一个 ShoppingCart 有状态会话 bean。Catalog 会话 bean 将获取库存数据,并将商品放入 ShoppingCart bean。查看和更新购物车是使用 ShoppingCart 有状态会话 bean 完成的。

在输入开票和发货信息后,ShoppingCart bean 创建一个新 Order CMP 实体 bean。一旦检出过程完成,将创建 Mailer 无状态会话 bean,此 bean 将使用 JavaMail API 来发送确认电子邮件。

ImageServlet

ImageServlet servlet 获取产品图像并把它放置到数据库中。该 servlet 通过 JSP 页面和 HTML 页面获取数据库中的图像,并通过 HTTP 响应将它们返回到浏览器。

AdminServlet

AdminServlet servlet 处理用户(浏览器)的数据库重新植入请求。

当处理来自 help.jsp 页的重新植入请求时,AdminServlet servlet 创建一个称为 ResetDB 的 bean 管理的持久性(BMP)bean。该 bean 删除所有数据库表并用 pbw.properties 属性文件的初始数据值重新植入表。

企业 bean

以下部分提供有关在此应用程序中使用的企业 bean 的信息。

Catalog

Catalog 是一个无状态会话 bean。它是访问 Inventory 容器管理的持久性实体 bean(CMP)的主要途径。无状态会话 bean 通常使用有限的事务数访问实体 bean 数据。Catalog 会话 bean 有一些从一个或多个 Inventory bean 获取信息的业务方法。有一些方法可用于添加和除去库存商品。Catalog 会话 bean 还有一些修改现有 Inventory bean 的方法。

Customer

Customer 是 CMP 实体 bean。它包含和管理客户所需的帐户数据。Customer 实体 bean 有一些用于创建、查找和更新客户信息,以及验证密码和获取 Customer 实体 bean 中的字段的方法。

Inventory

Inventory 是 CMP 实体 bean。此实体 bean 包含和管理库存商品数据。提供了查找,创建,获取和设置数据字段的方法。

Login

Login 是一个无状态会话 bean。此会话 bean 与客户 CMP 实体 bean 连接,以创建和更新客户帐户。

Mailer

Mailer 是一个无状态会话 bean。此会话 bean 使用 JavaMail API 创建和发送订单确认电子邮件。

Order

Order 是一个 CMP 实体 bean。此会话 bean 包含和管理订单数据。提供了查找,创建和获取数据字段的方法。

OrderItem 是一个 CMP 实体 bean。此实体 bean 包含和管理单个订单商品。提供了查找,创建和获取数据字段的方法。

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 删除数据库表中的所有行。