Plants by WebSphere



Mise en route
Recherche des tables de base de données
Recherche du code source
Notes relatives au codage

Mise en route

Vous pouvez créer une adresse électronique et un mot de passe uniques pour l'exemple Plants by WebSphere en cliquant sur register for your own account here dans la page de connexion. De plus, une adresse électronique et un mot de passe par défaut existent pour l'exemple Plants by WebSphere, comme indiqué dans le tableau suivant :


Adresse électronique plants@plantsbywebsphere.ibm.com
Mot de passe plants

Recherche des tables de base de données

Les tables de base de données de cet exemple sont les suivantes : CUSTOMER, INVENTORY, ORDERINFO, ORDERITEM, IDGENERATOR, BACKORDER et SUPPLIER. Ces tables se trouvent dans la base de données PLANTSDB. Cette dernière se trouve dans le fichier PlantsByWebSphere.ear, figurant dans le répertoire racine_profil/installedApps/nom_cellule/PlantsByWebSphere.ear/Database/PLANTSDB, où nom_cellule est le nom de la cellule dans laquelle l'application est installée.

Consultez la présentation des tables dans les instructions SQL suivantes :


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

Recherche du code source

Recherchez le code source dans le
répertoire racine_profil/samples/src/PlantsByWebSphere.

Clients z/OS : L'arborescence du code source des exemples n'est pas fournie sur la plateforme z/OS car les applications ne sont pas générées sur cette plateforme.

Notes relatives au codage

Présentation
Servlets
Beans enterprise

Présentation

L'exemple Plants by WebSphere intègre les technologies suivantes :

L'application Plants by WebSphere est prise en charge par une série de pages JSP et HTML. Ces pages communiquent avec les servlets suivants : AccountServlet, ShoppingServlet, ImageServlet et AdminServlet. Les servlets utilisent différentes méthodes métier de bean enterprise, qui à leur tour, accèdent aux données de la base de données en cas de nécessité. En général, les beans session sans état servent d'interface avec les beans entity pour réduire le nombre des transactions.

Servlets

La section suivante fournit des informations sur les servlets utilisés dans cette application.

ShoppingServlet

Le servlet ShoppingServlet traite la majorité des interactions entre le navigateur et les beans enterprise. Cette interaction inclut l'inventaire, le panier électronique et d'autres fonctions. La sélection d'une catégorie d'achat à consulter met en oeuvre un bean session Catalog pour rechercher et afficher tous les objets d'inventaire appropriés. L'affichage des détails d'un article met également en oeuvre un bean session Catalog pour obtenir des informations provenant d'un bean entity CMP Inventory.

L'ajout d'un article dans le panier électronique crée un bean session avec état ShoppingCart. Un bean session Catalog extrait les données d'inventaire et place l'article dans le bean ShoppingCart. L'affichage et la mise à jour du panier électronique s'effectuent par le biais du bean session avec état ShoppingCart.

Après avoir saisi les informations de facturation et d'expédition, le bean ShoppingCart crée un bean entity BMP Order. Une fois la réservation effectuée, un bean session Mailer sans état est créé pour envoyer un message électronique de confirmation en utilisant l'interface de programmation JavaMail.

ImageServlet

Le servlet ImageServlet extrait les images du produit et les place dans la base de données. Le servlet extrait les images des pages JSP et HTML de la base de données et les renvoie au navigateur par le biais d'une réponse HTTP.

AdminServlet

Le servlet AdminServlet traite les demandes provenant d'un utilisateur (navigateur) pour la repopulation de la base de données.

Lors du traitement des demandes de réalimentation à partir de la page help.jsp, le servlet AdminServlet crée un bean BMP (Bean-managed persistence) appelé ResetDB. Ce dernier supprime toutes les tables de base de données et alimente les tables à l'aide des valeurs de données initiales provenant du fichier de propriétés pbw.properties.

Beans enterprise

La section suivante fournit des informations sur les beans enterprise utilisés dans cette application.

Bean Catalog

Le bean Catalog est un bean session sans état. Il constitue le mode d'accès principal au bean entity CMP Inventory. Les beans session sans état accèdent généralement aux données du bean entity tout en limitant le nombre de transactions utilisées. Le bean session Catalog a des méthodes métier permettant d'extraire des informations à partir d'un ou plusieurs beans Inventory. Il existe des méthodes qui permettent d'ajouter ou de supprimer un article d'inventaire. Le bean session Catalog a également des méthodes permettant de modifier des beans Inventory existants.

Bean Customer

Le client est un bean entity CMP. Il contient et gère les données de compte nécessaires au client. Le bean entity Customer possède des méthodes pour créer, rechercher et mettre à jour les informations des clients, ainsi que pour vérifier un mot de passe et extraire les zones du bean entity Customer.

Bean Inventory

Le bean Inventory est un bean entity CMP. Ce bean entity contient et gère des données sur les articles d'inventaire. Des méthodes sont disponibles pour rechercher, créer, extraire et définir des zones de données.

Bean Login

Le bean Login est un bean session sans état. Ce bean session sert d'interface avec le bean entity CMP Customer pour créer et mettre à jour les comptes client.

Bean Mailer

Le bean Mailer est un bean session sans état. Ce bean session crée et envoie un message électronique de confirmation de commande en utilisant l'interface de programmation JavaMail.

Bean Order

Le bean Order est un bean entity CMP. Ce bean session contient et gère des données de commande. Des méthodes sont disponibles pour rechercher, créer et extraire des zones de données.

Le bean OrderItem est un bean entity CMP. Ce bean entity contient et gère un article de commande unique. Des méthodes sont disponibles pour rechercher, créer et extraire des zones de données.

ReportGenerator

Le bean ReportGenerator est un bean session sans état. Ce bean session génère des états en fonction des informations trouvées dans les commandes. Le bean session ReportGenerator sert d'interface avec le bean entity CMP Order. Les états sont constitués par les articles et les codes postaux correspondant aux meilleures ventes réalisées au cours d'une période donnée.

ShoppingCart

Le bean ShoppingCart est un bean session avec état. Ce bean session gère la liste des articles d'inventaire disponibles à l'achat par le biais de la session HTTP. Le bean session ShoppingCart a des méthodes métier pour ajouter, supprimer et mettre à jour des articles d'inventaire. Il a également une méthode permettant de créer un bean entity CMP Order lorsque le client est prêt à effectuer un achat.

ResetDB

ResetDB est un bean entity BMP. Ce bean entity supprime toutes les lignes dans les tables de base de données.