Aplikace Plants by WebSphere



Zahájení práce
Vyhledání databázových tabulek
Vyhledání zdrojového kódu
Kontrola poznámek ke kódu

Zahájení práce

Jedinečnou e-mailovou adresu a heslo pro ukázkovou aplikaci Plants by WebSphere můžete vytvořit po klepnutí na odkaz register for your own account here (registrace vlastního účtu) na stránce Login (Přihlášení). Kromě toho pro ukázkovou aplikaci Plants by WebSphere existuje výchozí e-mailová adresa a heslo. Tyto údaje jsou uvedeny v následující tabulce:


E-mailová adresa plants@plantsbywebsphere.ibm.com
Heslo plants

Vyhledání databázových tabulek

Pro tuto ukázku jsou použity databázové tabulky CUSTOMER, INVENTORY, ORDERINFO, ORDERITEM, IDGENERATOR, BACKORDER a SUPPLIER. Tyto tabulky jsou umístěny v databázi PLANTSDB. Databáze PLANTSDB je obsažena v souboru PlantsByWebSphere.ear umístěném v adresáři kořen_profilu/installedApps/název_buňky/PlantsByWebSphere.ear/Database/PLANTSDB, kde parametr název_buňky určuje název buňky s instalovanou aplikací.

Prohlédněte si rozvržení tabulek v následujících příkazech 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);

Vyhledání zdrojového kódu

Zdrojový kód naleznete v adresáři
kořen_profilu/samples/src/PlantsByWebSphere.

Zákazníci se systémem z/OS: Na platformě z/OS není strom zdrojového kódu ukázek k dispozici, protože ukázkové aplikace nejsou pro platformu z/OS sestaveny.

Kontrola poznámek ke kódu

Přehled
Servlety
Objekty enterprise bean

Přehled

Ukázková aplikace Plants by WebSphere využívá následující technologie:

Aplikace Plants by WebSphere je podporována kolekcí stránek JSP a HTML. Tyto stránky komunikují s následujícími servlety: AccountServlet, ShoppingServlet, ImageServlet a AdminServlet. Servlety používají řadu obchodních metod objektů enterprise bean, které podle potřeby přistupují k datům v databázi. Stavové objekty session bean se obecně používají jako rozhraní pro objekty entity bean, čímž se snižuje počet transakcí.

Servlety

V následujícím oddílu jsou uvedeny informace o servletech používaných v této aplikaci.

ShoppingServlet

Servlet ShoppingServlet zpracovává většinu interakcí mezi prohlížečem a objekty enterprise bean. K interakcím patří funkce pro manipulaci se zbožím a nákupním košíkem a funkce pro objednávání. Pro výběr kategorie při nákupu se používá objekt Catalog typu session bean, který vyhledá a zobrazí všechny relevantní objekty Inventory. Zobrazení podrobných informací o položce se také provádí prostřednictvím objektu Catalog typu session bean, který získá informace z objektu Inventory typu entity bean s perzistencí CMP.

Přidáním položky do nákupního košíku je vytvořen stavový objekt ShoppingCart typu session bean. Objekt Catalog typu session bean získá data objektu Inventory a vloží položku do objektu ShoppingCart typu bean. Zobrazování a aktualizace nákupního košíku se provádí prostřednictvím stavového objektu ShoppingCart typu session bean.

Po zadání fakturačních a přepravních informací objekt ShoppingCart typu bean vytvoří nový objekt Order typu entity bean s perzistencí CMP. Po dokončení procedury zpracování položek je vytvořen bezstavový objekt Mailer typu session bean, který prostřednictvím rozhraní API JavaMail odešle e-mail s potvrzením.

ImageServlet

Servlet ImageServlet získává obrázky produktů a vkládá je do databáze. Servlet získává obrázky ze stránek JSP a stránky HTML z databáze a prostřednictvím odpovědi HTTP je předává zpět prohlížeči.

AdminServlet

Servlet AdminServlet zpracovává požadavky uživatele (prohlížeče) týkající se opětného naplnění databáze.

Při zpracování požadavků na opětné naplnění ze stránky help.jsp servlet AdminServlet vytvoří objekt typu bean s perzistencí spravovanou objektem typu bean (BMP) s názvem ResetDB. Tento objekt typu bean odstraní všechny databázové tabulky a znovu tabulky naplní původními hodnotami dat ze souboru vlastností pbw.properties.

Objekty enterprise bean

V následujícím oddílu jsou uvedeny informace o objektech enterprise bean používaných v této aplikaci.

Catalog

Objekt Catalog je bezstavový objekt session bean. Jde o primární přístup k objektu Inventory typu entity bean s perzistencí spravovanou kontejnerem (CMP). Bezstavové objekty session bean obecně přistupují k datům objektů entity bean, čímž je omezován počet transakcí. Objekt Catalog typu session bean má k dispozici obchodní metody pro získávání informací z jednoho či několika objektů Inventory typu bean. Existují metody pro přidání a odebrání položky Inventory. Objekt Catalog typu session má také k dispozici metody pro úpravy existujících objektů Inventory typu bean.

Customer

Objekt Customer je objekt entity bean s perzistencí CMP. Obsahuje a spravuje data účtů, která jsou potřebná pro zákazníka. Objekt Customer typu entity bean má k dispozici metody pro vytváření, vyhledávání a aktualizaci informací o zákazníkovi i pro ověření hesla a získání polí v objektu Customer typu entity bean.

Inventory

Objekt Inventory je objekt entity bean s perzistencí CMP. Tento objekt entity bean obsahuje a spravuje data položek zboží. K dispozici jsou metody pro vyhledávání, vytváření, získávání a nastavování datových polí.

Login

Objekt Login je bezstavový objekt session bean. Tento objekt session bean je rozhraním pro objekt Customer typu entity bean s perzistencí CMP a umožňuje vytváření a aktualizaci zákaznických účtů.

Mailer

Objekt Mailer je bezstavový objekt session bean. Tento objekt session bean vytváří a odesílá e-mail s potvrzením prostřednictvím rozhraní API JavaMail.

Order

Objekt Order je objekt entity bean s perzistencí CMP. Tento objekt session bean obsahuje a spravuje data objednávek. K dispozici jsou metody pro vyhledávání, vytváření a získávání datových polí.

Objekt OrderItem je objekt entity bean s perzistencí CMP. Tento objekt entity bean obsahuje a spravuje jednu položku objednávky. K dispozici jsou metody pro vyhledávání, vytváření a získávání datových polí.

ReportGenerator

ReportGenerator je bezstavový objekt session bean. Tento objekt session bean generuje sestavy na základě informací nalezených v objednávkách. Objekt ReportGenerator typu session bean je rozhraním pro objekt Order typu entity bean s perzistencí CMP. Sestava sestává z položek s nejvyšší prodejností v rámci nastaveného rozsahu data a z poštovních směrovacích čísel s nejvyšší prodejností v rámci nastaveného rozsahu data.

ShoppingCart

Objekt ShoppingCart je stavový objekt session bean. Tento objekt session bean udržuje v rámci relace HTTP seznam položek zboží, které mají být zakoupeny. Objekt ShoppingCart typu session bean má k dispozici obchodní metody pro přidávání, odebírání a aktualizace položek zboží. Objekt ShoppingCart typu session bean má k dispozici také metodu pro vytvoření nového objektu Order typu entity bean s perzistencí CMP, je-li zákazník připraven k dokončení koupě.

ResetDB

Objekt ResetDB je objekt entity bean s perzistencí BMP. Tento objekt entity bean odstraní všechny řádky v databázových tabulkách.