譚 寧
[摘要]對(duì)基于J2EE采用B/S結(jié)構(gòu)體系,設(shè)計(jì)的網(wǎng)上購(gòu)物系統(tǒng)需要實(shí)現(xiàn)的模塊進(jìn)行分析研究。
[關(guān)鍵詞]J2EEEJB網(wǎng)上購(gòu)物數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0610064-01
基于J2EE采用B/S結(jié)構(gòu)體系設(shè)計(jì)電子商務(wù)系統(tǒng)是目前比較流行的方式之一,它是一種三層結(jié)構(gòu)的C/S。對(duì)于任何一個(gè)計(jì)算機(jī)應(yīng)用系統(tǒng),從簡(jiǎn)單的單機(jī)系統(tǒng)到復(fù)雜的網(wǎng)絡(luò)計(jì)算,都可以由三部分組成:顯示邏輯部分(表示層)、事務(wù)處理邏輯部分(功能層)和數(shù)據(jù)處理部分(數(shù)據(jù)層)。
該網(wǎng)上購(gòu)物系統(tǒng)需要實(shí)現(xiàn)的模塊有:實(shí)體EJB、無(wú)狀態(tài)會(huì)話EJB、互聯(lián)網(wǎng)程序數(shù)據(jù)模塊、應(yīng)用程序數(shù)據(jù)模塊、用戶的注冊(cè)登錄模塊、商品管理模塊、購(gòu)物車模塊、訂單處理模塊、網(wǎng)上支付模塊。
一、系統(tǒng)配置
網(wǎng)上購(gòu)物系統(tǒng)運(yùn)行在Windows XP操作系統(tǒng)下,以Sun公司的J2EE技術(shù)為技術(shù)支持,使用JBuilder9.0作為開發(fā)平臺(tái)、WebLogic8.0作為應(yīng)用服務(wù)器、SQL Sever2000作為核心數(shù)據(jù)庫(kù)管理系統(tǒng)。
Weblogic實(shí)現(xiàn)的J2EE服務(wù)器端編程策略集中于EJB,而BTB則是許多企業(yè)級(jí)Web應(yīng)用的心臟。EJB集成了數(shù)據(jù)管理、會(huì)話管理以及業(yè)務(wù)邏輯,同時(shí)還要協(xié)調(diào)應(yīng)用的各個(gè)層次。例如,使用實(shí)體Bean表示來(lái)自數(shù)據(jù)庫(kù)中的數(shù)據(jù),使用會(huì)話Bean實(shí)現(xiàn)復(fù)雜的或者敏感的業(yè)務(wù)邏輯,使用消息Bean支持異步數(shù)據(jù)處理。Webiogic容器為組件提供連接和通訊服務(wù)、多用戶事務(wù)支持、復(fù)制功能,因而具有較好的性能和擴(kuò)展能力。
整個(gè)系統(tǒng)將應(yīng)用程序分為三層:表示層、業(yè)務(wù)層和數(shù)據(jù)庫(kù)層,采用這種方式可以顯著增加系統(tǒng)處理并發(fā)的用戶會(huì)話的能力。
二、EJB的實(shí)現(xiàn)
(一)實(shí)體EJB的實(shí)現(xiàn)。網(wǎng)上購(gòu)物系統(tǒng)的數(shù)據(jù)表管理通過(guò)實(shí)體EJB進(jìn)行管理,客戶端不直接訪問實(shí)體EJB,而是訪問無(wú)狀態(tài)會(huì)話EJB,無(wú)狀態(tài)會(huì)話EJB提供數(shù)據(jù)表操作的所有事物。系統(tǒng)中的每個(gè)實(shí)體EJB都對(duì)應(yīng)于數(shù)據(jù)庫(kù)中的一個(gè)關(guān)系型表。采用這種一一對(duì)應(yīng)的方式可以使容器管理持久更方便的實(shí)現(xiàn),以免出現(xiàn)問題變得復(fù)雜甚至無(wú)法控制的情況。另外,每個(gè)實(shí)體BJB都在Home接口中提供一系列的find方法,用以根據(jù)無(wú)狀態(tài)會(huì)話EJB中傳來(lái)的參數(shù)查找數(shù)據(jù)。同時(shí),在每個(gè)實(shí)體EJB的Remote接口中提供了獲得實(shí)體EJB中數(shù)據(jù)的方法。
在容器管理的實(shí)體EJB中查找方法只需要在其Home接口中給出,但如何查則需要在其部署描述文件中定義。
下面介紹EJB的實(shí)現(xiàn):
1、進(jìn)入JBuilder,創(chuàng)建項(xiàng)目,設(shè)置Server的屬性是Weblogic;2、為項(xiàng)目創(chuàng)建EJB創(chuàng)建模塊,名字是ElectronicShoppingMall;3、為EJB創(chuàng)建模塊建立數(shù)據(jù)源;4、在數(shù)據(jù)源中選擇Category數(shù)據(jù)表,創(chuàng)建實(shí)體EJBCategoryESM;5、將該EJB添加兩個(gè)查找方法,分別是findA11、findByCategory:6、CategoryESM的主文件、創(chuàng)建接口文件和的遠(yuǎn)程接口文件代碼省略。
(二)無(wú)狀態(tài)會(huì)話EJB的實(shí)現(xiàn)。系統(tǒng)中編寫了兩個(gè)無(wú)狀態(tài)EJB,分別是ESMStatelessEJB和ESMDMStatelessEJB,它們集成了對(duì)實(shí)體EJB的訪問。通過(guò)訪問實(shí)體EJB,無(wú)狀態(tài)會(huì)話EJB可以向表示層提供數(shù)據(jù),也可以實(shí)現(xiàn)一些商務(wù)邏輯。前者的作用是查詢上述六個(gè)實(shí)體EJB的數(shù)據(jù),后者的作用是管理上述六個(gè)實(shí)體EJB的數(shù)據(jù),如增加、修改和刪除等操作。
無(wú)狀態(tài)會(huì)話EJB在設(shè)置其上下文時(shí)就得到了所有實(shí)體EJB的Home接口。通過(guò)這些接口,無(wú)狀態(tài)會(huì)話EJB就可以很方便的調(diào)用實(shí)體EJB,從而獲得或修改數(shù)據(jù)。
通過(guò)下面的步驟完成無(wú)狀態(tài)會(huì)話EJB的創(chuàng)建。
1、在EJB的創(chuàng)建模塊創(chuàng)建ESMStatelessBJB;2、ESMStatelessEJB的主文件代碼、接口文件代碼、遠(yuǎn)程接口文件代碼的編寫:3、在EJB的創(chuàng)建模塊創(chuàng)建ESMDMStatelessEJB,主文件代碼、接口文件代碼、遠(yuǎn)程接口文件代碼的編寫。
三、數(shù)據(jù)庫(kù)管理系統(tǒng)的實(shí)現(xiàn)
本系統(tǒng)選用SQL Sever2000數(shù)據(jù)庫(kù)服務(wù)器來(lái)建立和管理網(wǎng)上商店的產(chǎn)品和客戶信息。根據(jù)分析,本數(shù)據(jù)庫(kù)一共建立6個(gè)信息表格用來(lái)存儲(chǔ)信息,分別為:商品信息表用來(lái)存放商品的詳細(xì)信息;用戶信息表用來(lái)存放客戶的詳細(xì)信息;訂單信息表用來(lái)存放訂單的概要信息;訂單信息明細(xì)表用來(lái)存放訂單的詳細(xì)信息;管理員信息表用來(lái)存放管理員信息:促銷引擎信息表用來(lái)存放發(fā)布內(nèi)容。
用戶信息表、管理員信息表、促銷引擎信息表屬于文件管理數(shù)據(jù)庫(kù),商品信息表、訂單信息表、訂單信息明細(xì)表屬于關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)能通過(guò)整合存儲(chǔ)多個(gè)表格的數(shù)據(jù)記錄,為查詢提供正確的數(shù)據(jù)信息。訂單信息表和訂單信息明細(xì)表通過(guò)訂單號(hào)聯(lián)系在一起,商品信息表和訂單信息明細(xì)表通過(guò)貨品的編號(hào)聯(lián)系在一起。
數(shù)據(jù)庫(kù)管理的操作關(guān)系到數(shù)據(jù)庫(kù)中的多個(gè)表。如退貨管理,管理人員在填寫退貨單時(shí),既關(guān)系到退貨處理表,同時(shí)也關(guān)系到商品表和訂單表。這樣也方便商品供應(yīng)的管理及用戶訂單的管理,不需要管理員在退貨管理時(shí)還要修改商品供應(yīng)管理里修改商品供應(yīng)情況。
本系統(tǒng)需要在JSP網(wǎng)頁(yè)中與數(shù)據(jù)庫(kù)進(jìn)行連接,此時(shí)需要用到Javabean技術(shù)。數(shù)據(jù)庫(kù)的經(jīng)常使用使得需要我們連接和操作數(shù)據(jù)庫(kù),包括數(shù)據(jù)的插入、更新、刪除、和查詢等,為避免或減少重復(fù)代碼以及錯(cuò)誤代碼的出現(xiàn),將連接和操作數(shù)據(jù)庫(kù)的代碼寫成一個(gè)Javahean“connDB.java”。在相關(guān)的JSP網(wǎng)業(yè)中加入代碼便可以在相關(guān)網(wǎng)頁(yè)進(jìn)行相關(guān)數(shù)據(jù)庫(kù)的操作了。
每一個(gè)管理頁(yè)面都有密碼設(shè)置,管理員通過(guò)密碼進(jìn)入,進(jìn)行管理操作。在用戶訂單管理中,管理員能夠很方便的查詢到用戶的購(gòu)物情況,能夠了解用戶的購(gòu)物需求。在商品供應(yīng)管理中,商店能夠及時(shí)了解哪一種商品需要及時(shí)補(bǔ)充供應(yīng),哪一種商品比較暢銷。不足之處是:不能自動(dòng)顯示哪種商品短缺,要管理員查詢才能得知。在銷售情況管理中,管理員能查詢到每月的銷售業(yè)績(jī),這反映了商店的經(jīng)營(yíng)情況。在商品售價(jià)管理中,商店可以根據(jù)市場(chǎng)的行情隨時(shí)更改商品的當(dāng)前價(jià)格,這對(duì)于小型商店的靈活經(jīng)營(yíng)是非常有用的。
總之,一個(gè)完善的數(shù)據(jù)庫(kù)管理系統(tǒng)是一個(gè)完善網(wǎng)上商店的不可缺少的部分,是商店成功運(yùn)作的堅(jiān)實(shí)后盾。