劉芃范志勤(1.同濟(jì)大學(xué)軟件學(xué)院,上海 200096;2.江西現(xiàn)代職業(yè)技術(shù)學(xué)院,江西 南昌 330095)
?
基于J2EE圖書銷售管理系統(tǒng)
劉芃1,2范志勤1,2
(1.同濟(jì)大學(xué)軟件學(xué)院,上海 200096;2.江西現(xiàn)代職業(yè)技術(shù)學(xué)院,江西 南昌 330095)
摘要:隨著個(gè)人計(jì)算機(jī)的發(fā)展,網(wǎng)絡(luò)購物已經(jīng)普及到了每一家,而圖書銷售管理系統(tǒng)是一個(gè)典型的WEB電子商務(wù)系統(tǒng),隨著web技術(shù)的普及,也更大減少了銷售的成本,縮短了時(shí)間與空間的限制,簡化銷售的流程,本系統(tǒng)便是在這樣的背景下進(jìn)行設(shè)計(jì)與開發(fā)。
關(guān)鍵詞:J2EE;銷售;java;購物
本文在分析圖書銷售管理系統(tǒng)的國內(nèi)現(xiàn)狀,明確開發(fā)的目的,介紹了一些相關(guān)的技術(shù),java/及設(shè)計(jì)到的框架S2SH(struts2,spring,hibernate,),采用界面三層架構(gòu)了軟件系統(tǒng),使用MVC設(shè)計(jì)思想,頁面對(duì)action個(gè)發(fā)出請求,action個(gè)便調(diào)用model返回請求給頁面,選用了eclipse集成開發(fā)工具,后臺(tái)數(shù)據(jù)庫用的是oracle10g,服務(wù)器用的是tomcat6.0,java SE作為服務(wù)器端開發(fā)語言。
系統(tǒng)功能性需求。
1.圖書的瀏覽模塊。圖書瀏覽模塊是采用的是C/S架構(gòu),它的用戶是消費(fèi)者,消費(fèi)者可以在瀏覽圖書時(shí)了解不同書籍的名稱,價(jià)錢,出版社,也可以通過關(guān)鍵字來查詢圖書信息。
2.管理圖書模塊信息。管理圖書模塊信息是應(yīng)用程序,后臺(tái)管理員是圖書信息管理者,其權(quán)限包括查詢以及批量等進(jìn)行刪除圖書信息。
3.購物車信息模塊。購物車信息模塊,它的用戶是顧客,顧客可以從圖書庫中選中的商品放入自己或他人購物車,可以修正購物車圖書數(shù)量,并自動(dòng)計(jì)算總的價(jià)格,也可刪除購物車?yán)锩娴膱D書數(shù)量及信息,進(jìn)入信息確認(rèn)頁面后確認(rèn)下單。
4.訂單管理信息模塊。訂單管理信息模塊是在前臺(tái)用戶下單后產(chǎn)生的訂單信息,管理員后臺(tái)可以對(duì)其進(jìn)行撤銷訂單、完成訂單等工作。
5.用戶管理信息模塊。后臺(tái)管理者可以通過進(jìn)入用戶管理頁面查看用戶基本信息,可對(duì)用戶信息進(jìn)行刪除、批量刪除、以及賦予該用戶管理員的權(quán)限等。
(一)系統(tǒng)體系結(jié)構(gòu)模型。系統(tǒng)基于J2EE體系,整體架構(gòu)分為三層架構(gòu),頁面表現(xiàn)層,數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層,如圖3-1 層次設(shè)計(jì)圖所示:
圖 3-1 層次設(shè)計(jì)圖
1.數(shù)據(jù)訪問層。在這里我用的是hibernate框架,使用它可以做到完全的業(yè)務(wù)與數(shù)據(jù)庫分離,hibernate處于項(xiàng)目持久層,是業(yè)務(wù)和數(shù)據(jù)庫的中間位置。
2.業(yè)務(wù)邏輯層。業(yè)務(wù)邏輯層是數(shù)據(jù)接入層和struts2的action的中間層,負(fù)責(zé)實(shí)現(xiàn)整個(gè)系統(tǒng)各項(xiàng)個(gè)功能,該層起數(shù)據(jù)篩查、指令提交的功能。
3.頁面表現(xiàn)層。本系統(tǒng)在每個(gè)請求提交都需要經(jīng)過web.xml,而web.xml會(huì)在fiter標(biāo)簽找到sturts配置找到struts.xml文件,在這里找到namespace,會(huì)根據(jù)namespace來找到action來,action相當(dāng)于MVC的控制器(C),它會(huì)調(diào)用業(yè)務(wù)邏輯層,根據(jù)業(yè)務(wù)邏輯層的方法對(duì)數(shù)據(jù)訪問層做出提交操作,并且返回給action,又由action返回的result name 使用dispatch的方式跳轉(zhuǎn)到指定頁面。在本系統(tǒng),使用Spring框架貫穿了整個(gè)項(xiàng)目,所以項(xiàng)目中的類全部交給了spring管理,由于整合了struts2、spring、hibernate,所以action和hibernate都給了spring管理,保證了項(xiàng)目的運(yùn)行速度,層次鮮明,維護(hù)方便,在修改某個(gè)模塊代碼而不影響其他模塊。
(二)數(shù)據(jù)庫設(shè)計(jì)。
1.數(shù)據(jù)庫表的結(jié)構(gòu)。數(shù)據(jù)表主要分為用戶登記表、商品信息表、訂單表、訂單明細(xì)表等。
商品信息表主要用來保存商品信息,像書名,出版社等等,系統(tǒng)上的書籍也是從這張表里面取得。訂單表、訂單明細(xì)表是存放顧客在下訂單后的數(shù)據(jù)表。
2.業(yè)務(wù)邏輯層設(shè)計(jì)。該頁面提供用戶登錄的界面,用戶分別輸入用戶名和密碼,提交系統(tǒng)驗(yàn)證,若通過驗(yàn)證則進(jìn)入系統(tǒng),否則繼續(xù)顯示該頁面。
3.當(dāng)用戶輸入輸入驗(yàn)證信息提交后,將跳轉(zhuǎn)到struts中的action中,在此進(jìn)行調(diào)用后臺(tái)業(yè)務(wù)邏輯中的UserBeanBO類中的checkUsers方法實(shí)現(xiàn)驗(yàn)證。
(三)頁面表現(xiàn)層設(shè)計(jì)。當(dāng)用戶提交請求時(shí),action接受請求后到UserBeanBO中找到checkUsers方法,講接受到的用戶名密碼傳送給checkUsers方法從而進(jìn)行數(shù)據(jù)驗(yàn)證,使用hibernateTemplate接口,該接口是spring的,在這里用了spring的IOC技術(shù)注入了該接口的實(shí)現(xiàn)。
(一)數(shù)據(jù)表的自動(dòng)生成。數(shù)據(jù)表的自動(dòng)生成已經(jīng)廣泛的在java技術(shù)上使用,它也是近些年興起的一門技術(shù),在本系統(tǒng)中借助了hibernate框架來自動(dòng)生成數(shù)據(jù)表,其中生成表的主要配置如下。
該配置表示在運(yùn)行程序調(diào)用了被映射的Bean時(shí)執(zhí)行對(duì)數(shù)據(jù)庫進(jìn)行檢索,如果該表已經(jīng)存在則使用存在的表,如果不存在則產(chǎn)生一張新表,此被配置也可以配置成delete,表示永遠(yuǎn)產(chǎn)生新表。
(二)ORM技術(shù)。ORM技術(shù)就是對(duì)一個(gè)實(shí)體類的映射,通過該類的set和get方法來匹配數(shù)據(jù)庫中所對(duì)應(yīng)的數(shù)據(jù)表中的字段,它的屬性就是對(duì)應(yīng)數(shù)據(jù)表中的一個(gè)字段。
參考文獻(xiàn):
[1]孫鑫.Java Web 開發(fā)詳解. 北京:電子工業(yè)出版社,2012。
[2](加)Budi Kurniawan 著.Servlet & JSP: A Tutorial. 北京:機(jī)械工業(yè)出版社,2013。
中圖分類號(hào):G251
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1671-864X(2016)04-0283-01
作者簡介:
1.劉芃(1981-),男,江西南昌人,講師,江西現(xiàn)代職業(yè)技術(shù)學(xué)院教師,碩士研究生在讀,主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò)、信息安全技術(shù)、硬件和軟件。
2.范志勤(1979-),女,江西南昌人,講師,江西現(xiàn)代職業(yè)技術(shù)學(xué)院教師,碩士,主要研究方向:數(shù)據(jù)庫和軟件技術(shù)。