Plants by WebSphere



Iniţiere
Localizarea tabelelor de bază de date
Localizarea codului sursă
Examinarea notelor despre codare

Iniţiere

Puteţi crea o adresă de e-mail unică şi o parolă pentru exemplul Plants by WebSphere făcând clic pe înregistraţi-vă pentru propriul cont aici pe pagina de logare. În plus, există o adresă de e-mail implicită şi o parolă pentru exemplul Plants by WebSphere care sunt prezentate în următoarea tabelă:


Adresă e-mail plants@plantsbywebsphere.ibm.com
Parolă plants

Localizarea tabelelor de bază de date

Tabelele de bază de date pentru acest Exemplu sunt CUSTOMER, INVENTORY, ORDERINFO, ORDERITEM, IDGENERATOR, BACKORDER şi SUPPLIER. Aceste tabele se găsesc în baza de date PLANTSDB. Baza de date PLANTSDB se găseşte în fişierul PlantsByWebSphere.ear şi este localizată în directorul profile_root/installedApps/nume_celulă/PlantsByWebSphere.ear/Database/PLANTSDB, unde nume celulă este numele celulei unde este instalată aplicaţia dumneavoastră.

Vedeţi dispunerea tabelei în instrucţiunile 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);

Localizarea codului sursă

Localizaţi codul sursă în:
directorul profile_root/samples/src/PlantsByWebSphere.

z/OS: Codul sursă pentru Exemple nu este furnizat pe platforma z/OS deoarece aplicaţiile Exemplu nu sunt construite pe platforma z/OS.

Examinarea notelor despre codare

Privire generală
Servleturi
Bean-uri enterprise

Privire generală

Exemplul Plants by WebSphere încorporează următoarele tehnologii:

Aplicaţia Plants by WebSphere este suportată printr-o serie de pagini JSP şi pagini HTML. Aceste pagini comunică cu următoarele servleturi: AccountServlet, ShoppingServlet, ImageServlet şi AdminServlet. Servleturile folosesc diverse metode de business ale bean-urilor enterprise, care la rândul lor, accesează datele de la baza de date după cum este nevoie. În general, bean-urile de sesiune fără menţinere de stare sunt folosite cu bean-uri entitate, pentru a reduce numărul de tranzacţii.

Servleturi

Următoarea secţiune furnizează informaţii despre servleturi folosite în această aplicaţie.

ShoppingServlet

Servletul ShoppingServlet procesează majoritatea interacţiunilor între browser şi bean-urile enterprise. Această intercaţiune include inventarul, coşul de cumpărături şi funcţiile de comandare. Selectarea unei categorii de cumpărături de răsfoit foloseşte un bean de sesiune Catalog, pentru a găsi şi afişa toate obiectele relevante ale Inventarului. Afişarea detaliilor unui articol este de asemenea realizată folosind un bean de sesiune Catalog pentru a obţine informaţii despre un bean entitate CMP, Inventory.

Adăugarea unui articol la coşul de cumpărături creează un bean de sesiune stateful, ShoppingCart. Un bean de sesiune Catalog obţine datele inventarului şi plasează articolul în bean-ul ShoppingCart. Vizualizarea şi actualizarea coşului de cumpărături se face folosind bean-ul de sesiune stateful ShoppingCart.

După ce introduceţi informaţii de facturare şi de livrare, bean-ul ShoppingCart creează un nou bean entitate CMP, Order. După ce se finalizează procedura de înregistrare la ieşire, un bean de sesiune fără menţinere de stare Mailer este creat pentru a trimite e-mail-ul de confirmare, folosind API-ul JavaMail.

ImageServlet

Servletul ImageServlet obţine şi plasează imagini de produs în baza de date. Servletul obţine imagini de la paginile JSP şi paginile HTML de la baza de date şi le serveşte înapoi browser-ului prin intermediul unui răspuns HTTP.

AdminServlet

Servletul AdminServlet procesează cererile de la un utilizator (browser) pentru re-popularea bazei de date.

Când procesează cererile de re-populare de la pagina help.jsp, servletul AdminServlet creează un bean BMP (bean-managed persistence), numit ResetDB. Acest bean şterge toate tabele de bază de date şi repopulează tabelele cu valorile de date iniţiale din fişierul de proprietăţi pbw.properties.

Bean-uri enterprise

Următoarea secţiune furnizează informaţii despre bean-urile enterprise folosite în această aplicaţie.

Catalog

Catalog este un bean de sesiune fără menţinere de stare. Este accesul principal la bean-ul entitate CMP (container-managed persistance), Inventory. Bean-urile de sesiune fără menţinere de stare accesează în general datele bean-ului entitate, în timp ce limitează numărul de tranzacţii folosite. Bean-ul de sesiune Catalog are metode business pentru a obţine informaţii de la unul sau mai multe bean-uri Inventory. Există metode pentru a adăuga şi a înlătura un articol de inventar. Bean-ul sesiune Catalog are de asemenea metode pentru a modifica bean-urile Inventory existente.

Customer

Customer este un bean entitate CMP. Conţine şi gestionează datele contului pentru un client. Bean-ul de entitate Customer are metode pentru crearea, găsirea şi actalizarea informaţiilor de client, precum şi pentru cerificarea unei parole şi obţinerea câmpurilor din bean-ul entitate Customer.

Inventory

Inventory este un bean entitate CMP. Acest bean entitate conţine şi gestionează datele aricolelor de inventar. Sunt disponibile metode pentru găsirea, crearea, obţinerea şi setarea câmpurilor de date.

Login

Login este un bean de sesiune fără menţinere de stare. Acest bean de sesiune interfaţează cu bean-ul de entitate CMP, Customer, pentru a crea şi actualiza conturile de client.

Mailer

Mailer este un bean de sesiune fără menţinere de stare. Bean-ul de sesiune creează şi trimite un e-mail de confirmare comandă, folosind API-ul JavaMail.

Order

Order este un bean entitate CMP. Acest bean de sesiune conţine şi gestionează datele comenzilor. Sunt disponibile metode pentru găsirea, crearea şi obţinerea câmpurilor de date.

OrderItem este un bean entitate CMP. Acest bean entitate conţine şi gestionează un singur articol de comandă. Sunt disponibile metode pentru găsirea, crearea şi obţinerea câmpurilor de date.

ReportGenerator

ReportGenerator este un bean de sesiune fără menţinere de stare. Acest bean de pe informaţiile găsite în comenzi. Bean-ul de sesiune ReportGenerator interfaţează cu bean-ul entitate CMP, Order. Rapoartele constau din articolele cel mai bine vândute dintr-un interval de timp setat şi din codurile poştale cu cele mai bune vânzări tot pentru un interval de timp setat.

ShoppingCart

ShoppingCart este un bean de sesiune fără menţinere de stare. Acest bean de sesiune menţine o listă de articole de inventar de cumpărat prin intermediul unei sesiuni HTTP. Bean-ul sesiune ShoppingCart are metode business pentru a adăuga, înlătura şi actualiza articolele de inventar. Bean-ul de sesiune ShoppingCart are şi o metodă pentru a crea un nou bean entitate CMP, Order, când clientul este gata să finalizeze o cumpărătură.

ResetDB

ResetDB este un bean entitate BMP. Acest bean entitate şterge toate rândurile din tabelele de bază de date.