J2EE課程設(shè)計(jì)基于SSH電子商城的J2EE課程設(shè)計(jì)_第1頁(yè)
J2EE課程設(shè)計(jì)基于SSH電子商城的J2EE課程設(shè)計(jì)_第2頁(yè)
J2EE課程設(shè)計(jì)基于SSH電子商城的J2EE課程設(shè)計(jì)_第3頁(yè)
J2EE課程設(shè)計(jì)基于SSH電子商城的J2EE課程設(shè)計(jì)_第4頁(yè)
J2EE課程設(shè)計(jì)基于SSH電子商城的J2EE課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

J2EE課程設(shè)計(jì)--基于SSH電子商城的J2EE課程設(shè)計(jì)目錄摘要 -1-Abstract -2-1. 引言 -3-2. 設(shè)計(jì)目的與任務(wù) -4-3. 系統(tǒng)設(shè)計(jì) -4-3.1分層模式 -4-3.2開發(fā)技術(shù)與工具 -5-3.2總體設(shè)計(jì) -10-3.2.1系統(tǒng)總體結(jié)構(gòu) -10-3.2.2流程圖 -11-3.3詳細(xì)設(shè)計(jì) -13-3.3.1數(shù)據(jù)庫(kù)設(shè)計(jì) -13-3.3.2系統(tǒng)開發(fā)規(guī)范及說(shuō)明 -18-3.3.2具體模塊設(shè)計(jì) -20-4.程序清單 -27-4.1數(shù)據(jù)庫(kù)腳本 -27-4.2項(xiàng)目實(shí)現(xiàn)部分代碼 -30-5.程序調(diào)試與體會(huì) -42-6.運(yùn)行結(jié)果 -42-7.結(jié)論 -51-8.致謝 -51-9.參考文獻(xiàn) -51-

摘要隨著信息化網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)對(duì)人們的生活影響越來(lái)越大,網(wǎng)上購(gòu)物也逐漸成為一種趨勢(shì),這對(duì)電子商場(chǎng)的發(fā)展起到了很在的推進(jìn)作用。本文主要通過(guò)對(duì)電子商城的應(yīng)用環(huán)境和主要實(shí)現(xiàn)功能進(jìn)行分析,敘述了本電子商城的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,并對(duì)其總結(jié)。項(xiàng)目主要應(yīng)分層架構(gòu)思想,通過(guò)J2EE輕量級(jí)框架SSH與前臺(tái)Ajax技術(shù)來(lái)相結(jié)合來(lái)實(shí)現(xiàn)。在設(shè)計(jì)種過(guò)中全方位的應(yīng)用軟件工程的開發(fā)思想,對(duì)項(xiàng)目進(jìn)行UML建模包括各模塊的類圖、時(shí)序圖等。因?yàn)橄到y(tǒng)是基于B/S結(jié)構(gòu),所以適應(yīng)范圍廣闊。關(guān)鍵詞:電子商城,SSH,Ajax,框架

AbstractWiththedevelopmentofinformationnetworks,thenetworkeffectofincreasingpeople'slives,onlineshoppingisbecomingatrend,whichisthedevelopmentofelectronicstoreplayedaroleinthepromotion.Thisarticlemainlythroughtheapplicationofe-mallenvironmentandthemainachievementoffunctionalanalysis,describedintheElectronicMall'sdesignandimplementation,anditssummary.Applicationarchitecturemodelmainlyanemia,lightweightJ2EEframeworkthroughSSHwiththefrontdesktothecombinationofAjaxtechnologytoachieve.Plantedinthedesignofafullrangeofapplicationsinthedevelopmentofsoftwareengineeringideas,theprojectmodule,UMLmodelingincludingclassdiagrams,sequencediagrams.BecausethesystemisbasedonB/Sstructure,sotoadapttoabroadrange.Keywords:ElectronicMall,SH,Ajax,Framework引言 網(wǎng)上購(gòu)物迅猛發(fā)展,導(dǎo)致電子商城大量的涌現(xiàn),而電子商城的出現(xiàn)不僅改變了人們傳統(tǒng)的購(gòu)物方式,也逐漸的影響著人們的消費(fèi)觀,一個(gè)好的電子商城不僅能給客戶帶來(lái)方便,更能給企業(yè)帶來(lái)巨大的財(cái)富。本商城主要利用J2EE與Ajax技術(shù)進(jìn)行開發(fā),有很強(qiáng)的安全性、可靠性、可擴(kuò)展性。其前臺(tái)實(shí)現(xiàn)了從商品選購(gòu)到訂單提交整個(gè)業(yè)務(wù)流程,后臺(tái)實(shí)現(xiàn)了對(duì)整個(gè)系統(tǒng)的管理,就整體功能而言,基本能滿足基本的網(wǎng)上購(gòu)物需求,相信一定能讓用戶感到便捷、快速,讓企業(yè)管理、維護(hù)更簡(jiǎn)單。設(shè)計(jì)目的與任務(wù)隨著信息化技術(shù)在生活中的應(yīng)用越來(lái)越廣泛,網(wǎng)上購(gòu)物也逐漸成為人們的一種生活方式。本系統(tǒng)正是基于這樣一種環(huán)境下應(yīng)運(yùn)而生。本電子商城分為前、后臺(tái)兩部分,前臺(tái)主要實(shí)現(xiàn)會(huì)員的網(wǎng)上購(gòu)物業(yè)務(wù)流程,后臺(tái)則由各種管理員對(duì)商城會(huì)員、商品、定單等內(nèi)容進(jìn)行管理。系統(tǒng)設(shè)計(jì)3.1分層模式本系統(tǒng)的開發(fā)主要分為以下幾層:表示層、業(yè)務(wù)層、DAO層、持久層。業(yè)務(wù)層和DAO層都通過(guò)接口與其它層進(jìn)行連接從而減小了各層之間的耦合度,實(shí)現(xiàn)高內(nèi)聚、低耦的思想。分層結(jié)構(gòu)圖如下所示。圖3-1系統(tǒng)分層結(jié)構(gòu)3.2開發(fā)技術(shù)與工具主要開發(fā)工具為:MyEclipse8.6、Mysql6.0、Tomcat6.0、PowerDesigner12。主要技術(shù)包括:J2EE輕量級(jí)框架S2SH、MD5算法、Log4j、Ajax、JSON。S2SH集成框架是Struts、Spring和Hibernate三種技術(shù)的有機(jī)融合,是目前應(yīng)用最廣泛的JavaEE架構(gòu)。在S2SH集成框架中,Struts的作用是提供MVC模型,將界面、業(yè)務(wù)邏輯和數(shù)據(jù)分離,并提供一個(gè)高可擴(kuò)展的架構(gòu)。Spring作為核心,向上整合MVC框架,向下整合ORM框架,使用Spring的IoC容器來(lái)管理各組件之間之間的依賴關(guān)系,Spring的聲明事務(wù)將負(fù)責(zé)邏輯層組件的事務(wù)管理。而Hibernate提供了一個(gè)抽象的數(shù)據(jù)服務(wù)視圖,將用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)進(jìn)行高度抽象。Struts是目前創(chuàng)建Web應(yīng)用最常用的表現(xiàn)層MVC框架實(shí)現(xiàn),是JakartaApache的一個(gè)開源項(xiàng)目。基于Model2的Struts框架利用控制器和定制標(biāo)簽庫(kù)將應(yīng)用中的模型和視圖分離,達(dá)到了層間松散耦合的效果,同時(shí)提高系統(tǒng)的靈活性、重用性和維護(hù)性。作為開源項(xiàng)目,Struts經(jīng)受了大量實(shí)踐的檢驗(yàn),功能越來(lái)越強(qiáng)大,體系也日臻完善,并且對(duì)其他技術(shù)和框架顯示出良好的融合性。圖3-2Struts2.0MVC結(jié)構(gòu)圖Spring由RodJohnson創(chuàng)建,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)IoC和面向切面AOP的容器框架。圖3-3Spring功能圖Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用。圖3-4Hibernate運(yùn)行圖AJAX是AsynchronoutJavaScriptandXML的縮寫,它并不是一門新的語(yǔ)言或技術(shù),實(shí)際上是幾項(xiàng)技術(shù)按一定的方式組合在一起,在共同的協(xié)作中發(fā)揮各自的作用,它包括:使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn);使用DOM實(shí)現(xiàn)動(dòng)態(tài)顯示和交互;使用XML和XSLT進(jìn)行數(shù)據(jù)交換和處理;使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)讀?。蛔詈笥肑avaScript綁定和處理所有數(shù)據(jù)。AJAX的一個(gè)最大的特點(diǎn)是無(wú)需刷新頁(yè)面便可向服務(wù)器傳輸或讀寫數(shù)據(jù)(又稱無(wú)刷新頁(yè)面),這一特點(diǎn)要得益于XMLHTTP組件XMLHttpRequest對(duì)象。這樣就可以像再發(fā)桌面應(yīng)用程序只同服務(wù)器進(jìn)行數(shù)據(jù)層面的交換,而不用每次都刷新界面,也不用每次將數(shù)據(jù)處理的工作提交給服務(wù)器來(lái)做,這樣即減輕了服務(wù)器的負(fù)擔(dān)又加快了響應(yīng)速度、縮短了用戶等候時(shí)間。圖3-5Ajax模型JSON(JavaScriptObjectNotation,JavaScript對(duì)象標(biāo)記)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一個(gè)子集。JSON采用與編程語(yǔ)言無(wú)關(guān)的文本格式,但是也使用了類C語(yǔ)言的習(xí)慣,這些特性使JSON成為理想的數(shù)據(jù)交換格式。而AJAX可以利用JSON更加有效地接收數(shù)據(jù),因?yàn)镴SON特殊的屬性。在Struts2的showcase中的AJAX部分,JSON的結(jié)果輸出是通過(guò)Freemaker模板實(shí)現(xiàn)。這種方法在簡(jiǎn)易性和靈活性上都比不上JSON插件。MessageDigestAlgorithmMD5(中文名為消息摘要算法第五版)為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。當(dāng)用戶登錄的時(shí)候,系統(tǒng)把用戶輸入的密碼進(jìn)行MD5Hash運(yùn)算,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較,進(jìn)而確定輸入的密碼是否正確。通過(guò)這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道。Log4j是Apache的一個(gè)開放源代碼項(xiàng)目,通過(guò)使用Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件、甚至是套接口服務(wù)器、NT的事件記錄器、UNIXSyslog守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過(guò)定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過(guò)程。最令人感興趣的就是,這些可以通過(guò)一個(gè)配置文件來(lái)靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。3.2總體設(shè)計(jì)3.2.1系統(tǒng)總體結(jié)構(gòu) 本系統(tǒng)分為前臺(tái)和后臺(tái)兩部分,前臺(tái)提供一條網(wǎng)上購(gòu)物業(yè)務(wù)流程的功能實(shí)現(xiàn),主要實(shí)現(xiàn)模塊見(jiàn)圖3-1;后實(shí)現(xiàn)對(duì)前臺(tái)功能信息的管理,主要實(shí)現(xiàn)模塊見(jiàn)圖3-2。前臺(tái)功能模塊:圖3-6:前臺(tái)功能模塊后臺(tái)功能模塊:圖3-7:后臺(tái)功能模塊3.2.2流程圖前臺(tái)主要分為非會(huì)員用戶和會(huì)員用戶,其中只有會(huì)員用戶才能實(shí)現(xiàn)在線購(gòu)物,而非會(huì)員用戶必需進(jìn)行注冊(cè)。后臺(tái)用戶主要分為商品管理員、會(huì)員管理員、定單管理員、系統(tǒng)維護(hù)員,不同的管理員實(shí)現(xiàn)不同的功能。前臺(tái)流程圖:圖3-8:前臺(tái)流程圖后臺(tái)流程圖:圖3-9:后臺(tái)流程圖3.3詳細(xì)設(shè)計(jì)3.3.1數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫(kù)開發(fā)主要基于Mysql6.0數(shù)據(jù)庫(kù)管理工具,包括8個(gè)數(shù)據(jù)庫(kù)表如下所示:數(shù)據(jù)字典e_shop數(shù)據(jù)表清單:表名 解釋 ADMIN 管理員表 CART 購(gòu)物車表 EVALUATE 商品評(píng)價(jià)表 MEMBER 會(huì)員表 MERCHANTABLE 商品表 ORDERS 定單表 RECORD 記錄表 TYPES 類別表 表名:ADMIN解釋:ADMINadmin 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 ADMIN_ID 管理員編號(hào) INT2 2 ADMIN_NAME 管理員名 VARCHAR50 50 ADMIN_PWD 管理員密碼 VARCHAR30 20 ADMIN_TYPE 管理員種類 INT1 1 [返回]

表名:CART解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 CART_ID 購(gòu)物車編號(hào) INT5 5 CART_MEM_ID 會(huì)員編號(hào) INT5 5 是 CART_MER_ID 商品編號(hào) INT6 6 是 CART_NUM 商品數(shù)量 INT3 3 是 [返回]

表名:EVALUATE解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 EVAL_ID 評(píng)價(jià)編號(hào) INT3 3 EVAL_MEM_ID 會(huì)員編號(hào) INT5 5 是 EVAL_MER_ID 商品編號(hào) INT6 6 是 EVAL_DATE 評(píng)價(jià)日期 VARCHAR20 20 是 EVAL_CONTENT 評(píng)價(jià)內(nèi)容 VARCHAR200 200 是 [返回]

表名:MEMBER解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 MEM_ID 會(huì)員編號(hào) INT5 5 MEM_NAME 會(huì)員名稱 VARCHAR50 50 MEM_PWD 會(huì)員密碼 VARCHAR30 20 MEM_TEL VARCHAR15 15 是 MEM_ADDRESS 聯(lián)系地址 VARCHAR50 50 是 MEM_REGIST_DATE 注冊(cè)日期 VARCHAR10 10 是 MEM_POST 郵編 VARCHAR10 10 是 MEM_EMAIL EMAIL VARCHAR20 20 是 MEM_CART_ID 購(gòu)物車編號(hào) INT5 5 是 [返回]

表名:MERCHANTABLE解釋:MERCHANTABLEmerchantable 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 MER_ID 商品編號(hào) INT6 6 MER_NAME 商品名稱 VARCHAR50 50 MER_TYPE_ID 商品種類 INT3 3 是 MER_PLACE 出產(chǎn)地 VARCHAR50 50 是 MER_PRICE 價(jià)格 DECIMAL8,2 8 MER_DISCOUNT 折扣 DECIMAL2,1 2 是 MER_PICTURE 圖片 VARCHAR50 50 是 MER_DESC 描述 VARCHAR50 50 是 MER_PRODUCTER 廠家 VARCHAR60 60 是 MER_LEAVE_DATE 出廠時(shí)間 VARCHAR10 10 是 MER_ADD_DATE 添加時(shí)間 VARCHAR10 10 是 MER_NUM 銷售數(shù)量 INT 0 [返回]

表名:ORDERS解釋:ORDERSorders 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 ORDER_ID 定單編號(hào) INT6 6 ORDER_DATE 定單日期 VARCHAR20 20 是 ORDER_MEM_ID 會(huì)員編號(hào) INT5 5 是 ORDER_STATUS 定單狀態(tài) INT1 1 是 ORDER_SEND_TIME 發(fā)送時(shí)間 VARCHAR60 60 是 ORDER_REMARK 定單備注 VARCHAR100 100 是 ORDER_SUM 價(jià)錢總和 DECIMAL8,2 8 是 [返回]

表名:RECORD解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 RECORD_ID 記錄編號(hào) INT6 6 RECORD_MER_ID 商品編號(hào) INT6 6 是 RECORD_MER_NUM 商品數(shù)量 INT3 3 是 RECORD_ORDER_ID 定單編號(hào) INT6 6 是 [返回]

表名:TYPES解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長(zhǎng)度 可空 約束 缺省值 備注 是 TYPE_ID 類別編號(hào) INT3 3 TYPE_NAME 類別名稱 VARCHAR30 30 是 TYPE_DESC 類別描述 VARCHAR100 100 是 [返回]Struts配置文件圖3-13Struts配置文件圖3.3.2具體模塊設(shè)計(jì)整個(gè)系統(tǒng)主要包括商品信息模塊、會(huì)員模塊、購(gòu)物車模塊、訂單模塊、商品類別、后臺(tái)管理員模塊。商品信息模塊:本模塊主要用來(lái)顯示、查詢和商品評(píng)論的功能。主要涉及的類和方法如下類圖。其中PageServiceImpl為分頁(yè)實(shí)現(xiàn)類,在整個(gè)系統(tǒng)中屬于一個(gè)公共組件,故在各模塊中不再重復(fù)介紹。另一方面各模塊各層之間類的關(guān)系也大致相同,都可以參考以下類圖。圖3-14商品模塊類圖類名 含義 MerchantableAction 作為其控制層內(nèi)容,調(diào)用相應(yīng)的業(yè)務(wù)方法 HeadService 業(yè)務(wù)層抽象類,其實(shí)現(xiàn)類中包含相應(yīng)的業(yè)務(wù)方法 MerchantableDAO 包含相應(yīng)的持久層方法 類名:MerchantableAction方法 含義 showByType 調(diào)用業(yè)務(wù)層方法按類別顯示商品 showById 調(diào)用業(yè)務(wù)層方法顯示某種商品 research 調(diào)用業(yè)務(wù)層方法查詢商品 showAllMer 調(diào)用業(yè)務(wù)層方法顯示所有商品 deleteMer 調(diào)用業(yè)務(wù)層方法刪除商品 updateMer 調(diào)用業(yè)務(wù)層方法修改商品信息 saveMer 調(diào)用業(yè)務(wù)層方法保存商品信息 類名:HeadService方法 含義 findById 調(diào)用持久層方法按商品編號(hào)查詢商品 findByType 調(diào)用持久層方法按種類查詢商品 researchMer 按條件查詢商品 deleteMer 刪除商品 updateMer 修改商品 saveMer 保存商品 類名:MerchantableDAO方法 含義 findAllByKeyword 按關(guān)鍵字查詢所有商品 findByTypes 按各類查詢商品 findById 按商品編號(hào)查詢商品 delete 刪除商品 findAll 查詢所有商品 saveOrUpdate 保存或修改商品 findByNum 依據(jù)數(shù)量查詢 findPartByTyps 依據(jù)種類查詢部分商品 會(huì)員模塊: 在本模快中用到了兩控制層類LoginAction和LoginJsonAction,前者用于普通的控制調(diào)用業(yè)務(wù)層方法,同時(shí)返回相應(yīng)的業(yè)務(wù)邏輯視圖。后者則是用Struts和Json相結(jié)合應(yīng)用的,首先是能過(guò)Ajax提交數(shù)據(jù)當(dāng)相應(yīng)的action,然后調(diào)用業(yè)務(wù)層方法處理完成返回并不是返回某個(gè)邏輯視圖,而是將返回的信息通過(guò)Json進(jìn)行數(shù)據(jù)轉(zhuǎn)換,前臺(tái)通過(guò)Ajax接收數(shù)據(jù)。類名 含義 LoginAction 普通形式的控制器,調(diào)用相應(yīng)的業(yè)務(wù)層方法 LoginJsonAction Ajax提交時(shí)使用的控制器 UserService 業(yè)務(wù)層類,包含各種相應(yīng)的業(yè)務(wù)處理方法 MemberDAO 包含相應(yīng)的持久層方法 LoginAction類:方法 含義 modifyPwd 調(diào)用業(yè)務(wù)層方法修改會(huì)員密碼 modifyAddress 調(diào)用業(yè)務(wù)層方法修改會(huì)員地址等信息 regist 調(diào)用業(yè)務(wù)層方法注冊(cè) showMem 調(diào)用業(yè)務(wù)層方法后臺(tái)顯示所有會(huì)員 delMem 調(diào)用業(yè)務(wù)層方法刪除會(huì)員 LoginJsonAction類:方法 含義 execute 調(diào)用業(yè)務(wù)層方法會(huì)員登錄校驗(yàn) UserService類:方法 含義 modifyPwd 修改會(huì)員密碼 modifyAddress 修改會(huì)員地址等信息 save 保存會(huì)員 delMem 刪除會(huì)員 MemberDAO類:方法 含義 findByNameAndPwd 按用戶名和密碼查詢用戶 saveOrUpdate 保存或修改會(huì)員信息 findAll 查詢所有會(huì)員 delete 刪除會(huì)員 購(gòu)物車模塊: 同上面的會(huì)員模板,在此模塊中也有兩個(gè)控制類CartAction和CartJsonAction。類名 含義 CartAction 普通形式的控制器,調(diào)用相應(yīng)的業(yè)務(wù)層方法 CartJsonAction Ajax提交時(shí)使用的控制器 HeadService 業(yè)務(wù)層類,包含各種相應(yīng)的業(yè)務(wù)處理方法 CartDAO 包含相應(yīng)的持久層方法 CartAction類:方法 含義 execute 調(diào)用業(yè)務(wù)層方法查詢會(huì)員相應(yīng)的購(gòu)物車 update 調(diào)用業(yè)務(wù)層方法修改購(gòu)物車 delete 調(diào)用業(yè)務(wù)層方法刪除購(gòu)物車 CartJsonAction類:方法 含義 add 添加商品到購(gòu)物車 HeadService類:方法 含義 findCartByMember 依據(jù)會(huì)員查詢相應(yīng)的購(gòu)物車 updateCart 修改購(gòu)物車 deleteCart 刪除購(gòu)物車中的商品 addMerToCart 將商品加入購(gòu)物車 CartDAO類:方法 含義 findByMember 依據(jù)會(huì)員查詢相應(yīng)的購(gòu)物車 updateCart 修改購(gòu)物車 delete 刪除購(gòu)物車中的商品 saveCart 將商品加入購(gòu)物車 訂單模塊類名 含義 OrderAction 控制器調(diào)用相應(yīng)的業(yè)務(wù)層方法 HeadService 業(yè)務(wù)層類,包含各種相應(yīng)的業(yè)務(wù)處理方法 OrderDAO 包含相應(yīng)的持久層方法 OrderAction類:方法 含義 execute 調(diào)用業(yè)務(wù)層方法顯示訂單 addOrder 調(diào)用業(yè)務(wù)層方法添加 historyOrder 調(diào)用業(yè)務(wù)層方查看歷史訂單 modifyOrder 調(diào)用業(yè)務(wù)層方法進(jìn)入修改訂單 deleteOrder 調(diào)用業(yè)務(wù)層方法刪除訂單 showOrders 調(diào)用業(yè)務(wù)層方法顯示所有訂單 submit 調(diào)用業(yè)務(wù)層方法確認(rèn)定單、發(fā)貨 HeadService類:方法 含義 addOrder 添加訂單 findHistoryOrder 查尋歷史訂單 deleteOrde 刪除訂單 updateOrders 修改訂單 OrderDAO類:方法 含義 findById 據(jù)編號(hào)查詢訂單 findHistoryOrder 查尋歷史訂單 delete 刪除訂單 saveOrUpdate 保存或修改訂單 商品類別模板:類名 含義 TypesAction 控制器調(diào)用相應(yīng)的業(yè)務(wù)層方法 HeadService 業(yè)務(wù)層類,包含各種相應(yīng)的業(yè)務(wù)處理方法 TypesDAO 包含相應(yīng)的持久層方法 TypesAction類:方法 含義 getAllType 調(diào)用業(yè)務(wù)層方法獲取類別 deleteType 調(diào)用業(yè)務(wù)層方法刪除 addType 調(diào)用業(yè)務(wù)層方法添加種類 updateType 調(diào)用業(yè)務(wù)層方法修改種類 recommend 調(diào)用業(yè)務(wù)層方法推薦某類商品到首頁(yè) cancelRecommend 調(diào)用業(yè)務(wù)層方法取消推薦 HeadService類:方法 含義 findByReCommend 查詢推薦的商品 findAllTypes 查詢所有類別 deleteType 刪除類別 saveType 保存類別 updateType 修改類別 TypesDAO類:方法 含義 findByRecommend 查詢被推薦的類別 findById 據(jù)編號(hào)查詢所有類別 findAll 查詢所有類別 saveOrUpdate 保存或修改類別 delete 刪除類別 后臺(tái)管理員模塊:類名 含義 AdminAction 控制器調(diào)用相應(yīng)的業(yè)務(wù)層方法 UserService 業(yè)務(wù)層類,包含各種相應(yīng)的業(yè)務(wù)處理方法 AdminDAO 包含相應(yīng)的持久層方法 AdminAction類:方法 含義 valAdmin 調(diào)用業(yè)務(wù)層方法校驗(yàn)用戶 save 調(diào)用業(yè)務(wù)層保存管理員 update 調(diào)用業(yè)務(wù)層方法修改管理員權(quán)限 delete 調(diào)用業(yè)務(wù)層方法刪除管理員 modifyPwd 調(diào)用業(yè)務(wù)層修改管理員密碼 exit 注銷 UserService類:方法 含義 validateAdmin 校驗(yàn)用戶 saveAdmin 保存管理員 updateAdmin 修改管理員 delAdmin 刪除管理員 AdminDAO類:方法 含義 findAdminByNameAndPwd 據(jù)用戶名與密碼查詢用戶 saveOrUpdate 保存或保存管理員 Delete 刪除管理員 findById 依據(jù)編號(hào)查詢管理員 時(shí)序圖通過(guò)描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。它可以表示用例的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),時(shí)序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。CREATETABLEadmin admin_idINT2AUTO_INCREMENT, admin_nameVARCHAR50NOTNULL, admin_pwdVARCHAR30NOTNULL, admin_typeINT1NOTNULL, CONSTRAINTPK_ADMIN_IDPRIMARYKEYadmin_id;#會(huì)員表CREATETABLEmember mem_idINT5AUTO_INCREMENT, mem_nameVARCHAR50NOTNULL, mem_pwdVARCHAR30NOTNULL, mem_telVARCHAR15, mem_addressVARCHAR50, mem_regist_dateVARCHAR10, mem_postVARCHAR10, mem_emailVARCHAR20, mem_cart_idINT5, CONSTRAINTPK_MEMBER_IDPRIMARYKEYmem_id;#商品種類CREATETABLEtypes type_idINT3AUTO_INCREMENT, type_nameVARCHAR30, type_descVARCHAR100, type_recommendintdefault0, CONSTRAINTPK_TYPES_IDPRIMARYKEYtype_id;#商品信息表CREATETABLEmerchantable mer_idINT6AUTO_INCREMENT, mer_nameVARCHAR50NOTNULL, mer_type_idINT3, mer_placeVARCHAR50, mer_priceDECIMAL8,2NOTNULL, mer_discountDECIMAL2,1, mer_pictureVARCHAR50, mer_descVARCHAR50, mer_producterVARCHAR60, mer_leave_dateVARCHAR10, mer_add_dateVARCHAR10, mer_numintdefault0, CONSTRAINTPK_MERCHANTABLE_IDPRIMARYKEYmer_id, CONSTRAINTFK_MERCHANTABLE_TYPE_IDFOREIGNKEYmer_type_idREFERENCEStypestype_id;#商品評(píng)價(jià)表CREATETABLEevaluate eval_idINT3AUTO_INCREMENT, eval_mem_idINT5, eval_mer_idINT6, eval_dateVARCHAR20, eval_contentVARCHAR200, CONSTRAINTPK_EVALUATE_IDPRIMARYKEYeval_id, CONSTRAINTFK_EVALUATE_MEN_IDFOREIGNKEYeval_mem_idREFERENCESmembermem_id, CONSTRAINTFK_EVALUATE_MER_IDFOREIGNKEYeval_mer_idREFERENCESmerchantablemer_id;#購(gòu)物車購(gòu)物車號(hào)即為會(huì)員編號(hào)CREATETABLEcart cart_idINT5AUTO_INCREMENT, cart_mem_idINT5, cart_mer_idINT6unique, cart_numINT3, CONSTRAINTPK_CART_IDPRIMARYKEYcart_id, CONSTRAINTFK_CART_IDFOREIGNKEYcart_mem_idREFERENCESmembermem_id, CONSTRAINTFK_CART_MER_IDFOREIGNKEYcart_mer_idREFERENCESmerchantablemer_id;#訂單表CREATETABLEorders order_idINT6AUTO_INCREMENT, order_dateVARCHAR20, order_mem_idINT5, order_statusINT1, order_send_timevarchar60, order_remarkvarchar100, order_sumDECIMAL8,2, CONSTRAINTPK_ORDER_IDPRIMARYKEYorder_id, CONSTRAINTFK_ORDER_MEM_IDFOREIGNKEYorder_mem_idREFERENCESmembermem_id;#購(gòu)物記錄CREATETABLErecord record_idint6AUTO_INCREMENT, record_mer_idint6, record_mer_numint3, record_order_idint6, CONSTRAINTPK_RECORD_IDPRIMARYKEYrecord_id, CONSTRAINTFK_RECORD_MER_IDFOREIGNKEYrecord_mer_idREFERENCESmerchantablemer_id, CONSTRAINTFK_RECORD_ORDER_IDFOREIGNKEYrecord_order_idREFERENCESordersorder_id;4.2項(xiàng)目實(shí)現(xiàn)部分代碼applicationContext.xml配置文件?xmlversion"1.0"encoding"GBK"?beans xmlns" xmlns:xsi" xmlns:aop" xmlns:tx" xmlns:p" xsi:schemaLocation" beanid"dataSource"class"com.mchange.v2.c3p0boPooledDataSource" destroy-method"close" !--指定連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng)-- propertyname"driverClass"value"com.mysql.jdbc.Driver"/ !--指定連接數(shù)據(jù)庫(kù)的URL-- propertyname"jdbcUrl"value"jdbc: !--指定連接數(shù)據(jù)庫(kù)的用戶名-- propertyname"user"value"root"/ !--指定連接數(shù)據(jù)庫(kù)的密碼-- propertyname"password"value"root"/ !--指定連接數(shù)據(jù)庫(kù)連接池的最大連接數(shù)-- propertyname"PoolSize"value"40"/ !--指定連接數(shù)據(jù)庫(kù)連接池的最小連接數(shù)-- propertyname"minPoolSize"value"1"/ !--指定連接數(shù)據(jù)庫(kù)連接池的初始化連接數(shù)-- propertyname"initialPoolSize"value"1"/ !--指定連接數(shù)據(jù)庫(kù)連接池的連接的最大空閑時(shí)間-- propertyname"IdleTime"value"20"/ propertyname"idleConnectionTestPeriod"value"18000"/ beanid"sessionFactory" class"org.springframework.orm.hibernate3.LocalSessionFactoryBean" propertyname"dataSource" refbean"dataSource"/ propertyname"hibernateProperties" propkey"hibernate.dialect" org.hibernate.dialect.MySQLDialect !--是否根據(jù)需要每次自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)-- propkey"hibernate.hbm2ddl.auto"update !--顯示Hibernate持久化操作所生成的SQL-- propkey"hibernate.show_sql"true !--將SQL腳本進(jìn)行格式化后再輸出-- propkey"hibernate.format_sql"true propertyname"mappingResources" com/eshop/bean/Admin.hbm.xml com/eshop/bean/Cart.hbm.xml com/eshop/bean/Evaluate.hbm.xml com/eshop/bean/Member.hbm.xml com/eshop/bean/Merchantable.hbm.xml com/eshop/bean/Orders.hbm.xml com/eshop/bean/Record.hbm.xml com/eshop/bean/Types.hbm.xml !--****************事務(wù)管理配置***************-- beanid"transactionManager"class"org.springframework.orm.hibernate3.HibernateTransactionManager" propertyname"sessionFactory"ref"sessionFactory"/ !--****************配置切面Bean,指定事務(wù)管理器-- tx:adviceid"txAdvice"transaction-manager"transactionManager" tx:attributes tx:methodname"*"/ /tx:attributes /tx:advice !--配置一個(gè)切入點(diǎn)匹配指定包下所有類-- aop:config aop:pointcutid"pointcut"expression"execution*com.eshop.service.impl.*Impl.*.."/ aop:advisoradvice-ref"txAdvice"pointcut-ref"pointcut"/ /aop:config !--引進(jìn)daoContext.xml配置文件-- importresource"daoContext.xml"/ !--*****************Service************************-- beanid"headService"class"com.eshop.service.impl.HeadServiceImpl" propertyname"typesDAO"ref"typesDAO"/ propertyname"merchantableDAO"ref"merchantableDAO"/ propertyname"cartDAO"ref"cartDAO"/ propertyname"evaluateDAO"ref"evaluateDAO"/ propertyname"ordersDAO"ref"ordersDAO"/ propertyname"recordDAO"ref"recordDAO"/ beanid"userService"class"com.eshop.service.impl.UserServiceImpl" propertyname"memberDAO"ref"memberDAO"/ propertyname"cartDAO"ref"cartDAO"/ propertyname"adminDAO"ref"adminDAO"/ beanid"pageService"class"com.eshop.service.impl.PageServiceImpl" propertyname"pageDAO"ref"pageDAO"/ !--*****************Action***********************-- beanid"typesAction"class"com.eshop.action.TypesAction"scope"prototype" propertyname"headService"ref"headService"/ beanid"merchantableAction"class"com.eshop.action.MerchantableAction"scope"prototype" propertyname"headService"ref"headService"/ propertyname"pageService"ref"pageService"/ !--scope注意默認(rèn)為單例模式sington-- beanid"loginAction"class"com.eshop.action.LoginAction"scope"prototype" propertyname"userService"ref"userService"/ propertyname"pageService"ref"pageService"/ beanid"loginJsonAction"class"com.eshop.action.LoginJsonAction"scope"prototype" propertyname"userService"ref"userService"/ beanid"cartAction"class"com.eshop.action.CartAction"scope"prototype" propertyname"headService"ref"headService"/ beanid"cartJsonAction"class"com.eshop.action.CartJsonAction"scope"prototype" propertyname"headService"ref"headService"/ beanid"evaluateJsonAction"class"com.eshop.action.EvaluateJsonAction"scope"prototype" propertyname"headService"ref"headService"/ beanid"evalAction"class"com.eshop.action.EvaluateAction"scope"prototype" propertyname"headService"ref"headService"/ beanid"orderAction"class"com.eshop.action.OrderAction"scope"prototype" propertyname"headService"ref"headService"/ propertyname"pageService"ref"pageService"/ beanid"adminAction"class"com.eshop.action.AdminAction"scope"prototype" propertyname"userService"ref"userService"/ daoContext.xml配置文件?xmlversion"1.0"encoding"UTF-8"? !--指定Spring配置文件的DTD信息--!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN2.0//EN" " beanid"template"abstract"true"lazy-init"true" propertyname"sessionFactory"ref"sessionFactory"/ beanid"adminDAO"class"com.eshop.dao.impl.AdminDAOImpl"parent"template"/ beanid"cartDAO"class"com.eshop.dao.impl.CartDAOImpl"parent"template"/ beanid"evaluateDAO"class"com.eshop.dao.impl.EvaluateDAOImpl"parent"template"/ beanid"memberDAO"class"com.eshop.dao.impl.MemberDAOImpl"parent"template"/ beanid"merchantableDAO"class"com.eshop.dao.impl.MerchantableDAOImpl"parent"template"/ beanid"ordersDAO"class"com.eshop.dao.impl.OrdersDAOImpl"parent"template"/ beanid"recordDAO"class"com.eshop.dao.impl.RecordDAOImpl"parent"template"/ beanid"typesDAO"class"com.eshop.dao.impl.TypesDAOImpl"parent"template"/ beanid"pageDAO"class"com.eshop.dao.impl.PageImplDao"parent"template"/struts.xml配置文件?xmlversion"1.0"encoding"GBK"?!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"" constantname"struts.i18.encoding"value"UTF-8"/ constantname"struts.custom.i18n.resources"value"messageResource"/ packagename"head"extends"struts-default"namespace"/head" actionname"index"class"typesAction" resultname"success"index.jsp resultname"exit"type"redirect"index.action actionname"login"class"loginAction" resultname"error"index.jsp resultname"modify"member/modifyPwd.jsp resultname"modifyaddress"member/modifyAddress.jsp resultname"regist"registSucc.jsp resultname"input"member/modifyPwd.jsp actionname"merchantable"class"merchantableAction" resultname"success"showByType.jsp resultname"showone"showById.jsp resultname"research"result.jsp actionname"eval"class"evalAction" resultname"success"showById.jsp actionname"*" 1.jsp packagename"headmember"extends"struts-default"namespace"/head/member" actionname"mycart"class"cartAction" resultname"error"/head/login.jsp resultname"success"mycart.jsp actionname"order"class"orderAction" resultname"success"account.jsp resultname"finished"finish.jsp resultname"history"historyOrder.jsp resultname"modify"modifyOrder.jsp resultname"delete"modifyOrder.jsp actionname"*" 1.jsp packagename"json"extends"json-default"namespace"/head" actionname"cartJson"class"cartJsonAction" resulttype"json"/ actionname"evalJson"class"evaluateJsonAction" resulttype"json"/ actionname"addEvalJson"class"evaluateJsonAction"method"add" resulttype"json"/ actionname"loginJson"class"loginJsonAction" resulttype"json"/ packagename"back"extends"struts-default"namespace"/

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論