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 샘플은 다음 기술을 통합합니다.

Plants by WebSphere 응용프로그램은 일련의 JSP 페이지와 HTML 페이지를 통해 지원됩니다. 이러한 페이지는 AccountServlet, ShoppingServlet, ImageServlet, AdminServlet Servlet과 통신합니다. Servlet은 다양한 엔터프라이즈 Bean 비즈니스 메소드를 사용하고, 이 메소드는 필요에 따라 데이터베이스에서 데이터에 액세스합니다. 일반적으로, Stateless 세션 Bean은 트랜잭션 수를 줄이기 위한 엔티티 Bean과의 인터페이스에 사용됩니다.

Servlet

다음 섹션에는 이 응용프로그램에 사용된 Servlet의 정보가 제공되어 있습니다.

ShoppingServlet

ShoppingServlet Servlet은 브라우저와 엔터프라이즈 Bean 사이의 상호 작용 대부분을 처리합니다. 이 상호 작용에는 인벤토리, 장바구니 및 주문 기능이 포함됩니다. 찾으려는 쇼핑 카테고리를 선택하면 카탈로그 세션 Bean을 사용하여 관련된 모든 인벤토리 오브젝트를 찾아서 표시합니다. 항목의 세부사항 표시는 인벤토리 CMP 엔티티 Bean에서 정보를 확보하기 위해 카탈로그 세션 Bean을 사용하여 수행되기도 합니다.

장바구니에 항목을 추가하면 ShoppingCart Stateful 세션 Bean이 작성됩니다. 카탈로그 세션 Bean은 인벤토리 데이터를 확보하고 항목을 ShoppingCart Bean에 놓습니다. 장바구니를 보고 갱신하는 것은 ShoppingCart Stateful 세션 Bean을 사용하여 수행됩니다.

청구 및 쇼핑 정보를 입력하고 나면, ShoppingCart Bean은 새 주문 CMP 엔티티 Bean을 작성합니다. 체크 아웃 절차가 완료되면, JavaMail API를 사용하여 확인 전자 우편을 전송하기 위한 메일러 Stateless 세션 Bean이 작성됩니다.

ImageServlet

ImageServlet Servlet은 제품 이미지를 확보하여 데이터베이스에 놓습니다. Servlet은 JSP 및 HTML 페이지의 이미지를 데이터베이스에서 확보하여 다시 HTTP 응답을 통해 브라우저에 제공합니다.

AdminServlet

AdminServlet Servlet은 사용자(브라우저)로부터 데이터베이스 다시 채우기에 대한 요청을 처리합니다.

help.jsp 페이지에서 다시 채우기 요청을 처리할 때, AdminServlet Servlet은 ResetDB라는 BMP(Bean-managed Persistence) Bean을 작성합니다. 이 Bean은 모든 데이터베이스 테이블을 삭제하고 pbw.properties 등록 정보 파일에서 초기 데이터 값으로 테이블을 다시 채웁니다.

엔터프라이즈 Bean

다음 섹션에서는 이 응용프로그램에서 사용된 엔터프라이즈 Bean의 정보를 제공합니다.

카탈로그

카탈로그는 Stateless 세션 Bean입니다. 이는 인벤토리 CMP 엔티티 Bean에 대한 1차 액세스입니다. Stateless 세션 Bean은 사용되는 트랜잭션 수를 제한하면서 일반적으로 엔티티 Bean 데이터에 액세스합니다. 카탈로그 세션 Bean에는 하나 이상의 인벤토리 Bean에서 정보를 확보하기 위한 비즈니스 메소드가 있으며, 메소드는 인벤토리 항목을 추가 및 제거하기 위해 있습니다. 또한 카탈로그 세션 Bean에는 기존 인벤토리 Bean을 수정하기 위한 메소드가 있습니다.

고객

고객은 CMP 엔티티 Bean입니다. 여기에는 고객에 대해 필요한 계정 데이터가 포함되며 이를 관리합니다. 고객 엔티티 Bean은 고객 정보의 작성, 찾기 및 갱신과 고객 엔티티 Bean에서 암호 확인 및 필드 확보를 위한 메소드를 갖습니다.

인벤토리

인벤토리는 CMP 엔티티 Bean입니다. 이 엔티티 Bean에는 인벤토리 항목 데이터가 포함되며 이를 관리합니다. 메소드는 데이터 필드를 찾기, 작성, 확보 및 설정할 수 있습니다.

로그인

로그인은 Stateless 세션 Bean입니다. 이 세션 Bean은 고객 CMP 엔티티 Bean과 상호 작용하여 고객 계정을 작성하고 갱신합니다.

메일러

메일러는 Stateless 세션 Bean입니다. 이 세션 Bean은 JavaMail API를 사용하여 주문 확인 전자 우편을 작성하고 전송합니다.

주문

주문은 CMP 엔티티 Bean입니다. 이 세션 Bean에는 주문 데이터가 포함되며 이를 관리합니다. 메소드는 데이터 필드를 찾고 작성하며, 확보하는 데 사용 가능합니다.

OrderItem은 CMP 엔티티 Bean입니다. 이 엔티티 Bean에는 단일 주문 항목이 포함되며 이를 관리합니다. 메소드는 데이터 필드를 찾고 작성하며, 확보하는 데 사용 가능합니다.

ReportGenerator

ReportGenerator는 Stateless 세션 Bean입니다. 이 세션 Bean은 주문에 있는 정보를 기초로 보고서를 생성합니다. ReportGenerator 세션 Bean은 주문 CMP 엔티티 Bean과 인터페이스합니다. 보고서는 설정된 날짜 범위에 대한 상위 판매 항목과 설정된 날짜 범위에 대한 상위 판매 우편번호로 구성됩니다.

ShoppingCart

ShoppingCart는 Stateful 세션 Bean입니다. 이 세션 Bean은 HTTP 세션을 통해 구입하도록 인벤토리 항목 목록을 유지보수합니다. ShoppingCart 세션 Bean에는 인벤토리 항목을 추가, 제거 및 갱신하기 위한 비즈니스 메소드가 있습니다. ShoppingCart 세션 Bean에는 고객이 구입을 완료할 준비가 될 때 새 주문 CMP를 작성하기 위한 메소드도 있습니다.

ResetDB

ResetDB는 BMP 엔티티 Bean입니다. 이 엔티티 Bean은 데이터베이스 테이블의 모든 행을 삭제합니다.