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