Plants by WebSphere



Kezdeti lépések
Adatbázistáblák helye
Forráskód helye
Kódolási megjegyzések áttekintése

Kezdeti lépések

A Plants By WebSphere példához egy egyedi e-mail címet és jelszót hozhat létre a Belépési oldalon a regisztráció saját fiókhoz itt lehetőségre kattintva. Mindemellett, alapértelmezett e-mail cím és jelszó is létezik a Plants By WebSphere példához, amelyeket a következő táblázat mutat be:


E-mail cím plants@plantsbywebsphere.ibm.com
Jelszó plants

Adatbázistáblák helye

A példa adatbázistáblái a következők: CUSTOMER, INVENTORY, ORDERINFO, ORDERITEM, IDGENERATOR, BACKORDER, és SUPPLIER. Ezek a táblák a PLANTSDB adatbázisban találhatók. A PLANTSDB adatbázis a PlantsByWebSphere.ear fájlban található és a profil_gyökér/installedApps/cella neve/PlantsByWebSphere.ear/Database/PLANTSDB könyvtárban helyezkedik el, ahol a cella neve annak a cellának a neve, ahol az alkalmazás telepítve van.

Tekintse meg a táblaszerkezetet a következő SQL utasításokban:


	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);

Forráskód helye

A forráskód a(z)
profil_gyökér/samples/src/PlantsByWebSphere könyvtárban található.

z/OS felhasználók figyelmébe: A példák forráskódfája z/OS platformon nem áll rendelkezésre, mivel a példaalkalmazások összeépítése nem z/OS platformon történik.

Kódolási megjegyzések áttekintése

Áttekintés
Kiszolgáló kisalkalmazások
EJB komponensek

Áttekintés

A Plants by WebSphere példa az alábbi technológiákat öleli fel:

A Plants by WebSphere alkalmazás JSP oldalak és HTML oldalak sorozatán keresztül támogatott. Ezek az oldalak a következő szervletekkel kommunikálnak: AccountServlet, ShoppingServlet, ImageServlet és AdminServlet. A szervletek különböző EJB-komponens üzleti metódusokat használnak, amelyek viszont szükség szerint hozzáférnek az adatbázis adataihoz. Általánosan elmondható, hogy az állapotnélküli session bean komponensek felületként használatosak az entity bean komponensekhez annak érdekében, hogy lecsökkenjen a tranzakciók száma.

Kiszolgáló kisalkalmazások

A következő szakasz az alkalmazásban használt szervletekről biztosít információkat.

ShoppingServlet

A ShoppingServlet szervlet dolgozza fel a böngésző és az EJB-komponens közötti együttműködés nagy részét. Az együttműködés magába foglalja a készlet, bevásárlókosár és megrendelés funkciókat. Egy vásárlási kategória kiválasztása böngészésre egy katalógus session bean komponenst használ minden érintett készlet objektum megtalálásához és megjelenítéséhez. Egy cikk részleteinek megjelenítése is egy katalógus session bean használatával megy végbe, amely információkat szerez a készlet CMP entity bean komponenstől.

Cikk hozzáadása a bevásárlókosárhoz egy bevásárlókosár állapotmegőrző session bean komponenst hoz létre. A katalógus session bean lekérdezi a készlet adatokat és a cikket a bevásárlókosár (ShoppingCart) komponensbe helyezi. A bevásárlókosár megjelenítése és frissítése a ShoppingCart állapotmegőrző session bean komponens használatával történik.

A számlázási és szállítási információk bevitele után a ShoppingCart komponens létrehoz egy új rendelés CMP entity bean komponenst. A kijelentkezési eljárás befejezése után egy levélküldő állapotnélküli session bean komponens jön létre a megerősítési e-mail elküldésére a JavaMail API használatával.

ImageServlet

Az ImageServlet szervlet képeket szerez be és helyez el az adatbázisban. A szervlet az adatbázisból, a JSP oldalakról és HTML oldalakról kér le képeket és a HTTP válaszon keresztül szolgáltatja a böngészőnek.

AdminServlet

Az AdminServlet szervlet dolgozza fel a felhasználók (böngészők) kéréseit adatbázis feltöltésre.

A help.jsp oldal újrafeltöltésre irányuló kéréseinek feldolgozásakor az AdminServlet kiszolgáló kisalkalmazás létrehozza a ResetDB nevű komponens által irányított megmaradási (BMP) komponenst. Ez a komponens kitöröl minden adatbázis táblát és újra feltölti a táblákat a pbw.properties tulajdonságfájlból a kezdeti adatértékekkel.

EJB komponensek

A következő szakasz információkat biztosít az alkalmazásban használt EJB komponensekről.

Katalógus

A katalógus egy állapotnélküli szekciókomponens. Ezen keresztül lehet elsődlegesen hozzáférni a Készlet (Inventory) tároló által kezelt perzisztencia (CMP) entity bean komponenshez. Az állapotnélküli session bean komponensek általában entity bean adatokhoz férnek hozzá, miközben a felhasznált tranzakciók számát korlátozzák. A katalógus session bean komponens üzleti metódusokkal rendelkezik legalább egy készletkomponens információinak lekérdezéséhez. Léteznek metódusok készletelem hozzáadásához és eltávolításához. A katalógus szekciókomponensnek létező készletkomponensek módosításához is vannak metódusai.

Ügyfél

Az ügyfél (Customer) egy CMP entity bean komponens. Az ügyfél fiókadatait tartalmazza és kezeli. Az Ügyfél (Customer) entity bean komponensnek vannak metódusai ügyfél-információk létrehozásához, megkereséséhez és frissítéséhez, valamint jelszó ellenőrzéséhez és az Ügyfél entity bean mezőinek lekérdezéséhez.

Készlet

A készlet (Inventory) egy CMP entity bean komponens. Ez az entity bean komponens készletelemek adatait tartalmazza és kezeli. Vannak metódusai adatmezők keresésére, létrehozására, lekérdezésére és beállítására.

Bejelentkezés

A bejelentkezés egy állapotnélküli szekciókomponens. Ez a session bean komponens az Ügyfél CMP entity bean komponenshez csatlakozik ügyfélfiókok létrehozásához és frissítéséhez.

Levélküldő

A levélküldő egy állapotnélküli szekciókomponens. Ez a session bean komponens hozza létre és küldi el a rendelésmegerősítési e-maileket a JavaMail API használatával.

Rendelés

A Rendelés egy CMP entitás komponens. Ez a szekciókomponens rendelési adatokat tartalmaz és kezel. Vannak metódusai adatmezők keresésére, létrehozására és lekérdezésére.

A Cikkrendelés egy CMP entitás komponens. Ez az entitás komponens egy egyedülálló rendelési elemet tartalmaz és kezel. Vannak metódusai adatmezők keresésére, létrehozására és lekérdezésére.

Jelentéskészítő

A Jelentéskészítő egy állapotnélküli szekciókomponens. Ez a session bean komponens jelentéseket készít a megrendelésekben található információk alapján. A Jelentéskészítő session bean komponens a Rendelés CMP entity bean komponenshez kapcsolódik. A jelentés a beállított dátumtartományon belül a legnagyobb mennyiségben eladott cikkekből, illetve az adott dátumtartományon belül a legtöbb eladást bonyolítók irányítószámaiból áll.

Bevásárlókosár

A Bevásárlókosár egy állapottartó szekciókomponens. Ez a session bean komponens azoknak a készletcikkeknek a listáját tartja karban, amelyeket egy HTTP szekción keresztül kell megvásárolni. A Bevásárlókosár session bean komponensnek vannak metódusai készletcikkek felvételére, eltávolítására és frissítésére. A Bevásárlókosár egy olyan metódussal is rendelkezik, ami egy új Rendelés CMP entity bean komponenst hoz létre, amikor az ügyfél kész a vásárlás befejezésére.

ABvisszaállítás

Az ABvisszaállítás egy BMP entitás komponens. Az entitás komponens az adatbázistábla minden sorát törli.