版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
J2EE課程設(shè)計--基于SSH電子商城的J2EE課程設(shè)計目錄摘要 -1-Abstract -2-1. 引言 -3-2. 設(shè)計目的與任務(wù) -4-3. 系統(tǒng)設(shè)計 -4-3.1分層模式 -4-3.2開發(fā)技術(shù)與工具 -5-3.2總體設(shè)計 -10-3.2.1系統(tǒng)總體結(jié)構(gòu) -10-3.2.2流程圖 -11-3.3詳細設(shè)計 -13-3.3.1數(shù)據(jù)庫設(shè)計 -13-3.3.2系統(tǒng)開發(fā)規(guī)范及說明 -18-3.3.2具體模塊設(shè)計 -20-4.程序清單 -27-4.1數(shù)據(jù)庫腳本 -27-4.2項目實現(xiàn)部分代碼 -30-5.程序調(diào)試與體會 -42-6.運行結(jié)果 -42-7.結(jié)論 -51-8.致謝 -51-9.參考文獻 -51-
摘要隨著信息化網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)對人們的生活影響越來越大,網(wǎng)上購物也逐漸成為一種趨勢,這對電子商場的發(fā)展起到了很在的推進作用。本文主要通過對電子商城的應用環(huán)境和主要實現(xiàn)功能進行分析,敘述了本電子商城的設(shè)計與實現(xiàn)過程,并對其總結(jié)。項目主要應分層架構(gòu)思想,通過J2EE輕量級框架SSH與前臺Ajax技術(shù)來相結(jié)合來實現(xiàn)。在設(shè)計種過中全方位的應用軟件工程的開發(fā)思想,對項目進行UML建模包括各模塊的類圖、時序圖等。因為系統(tǒng)是基于B/S結(jié)構(gòu),所以適應范圍廣闊。關(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)上購物迅猛發(fā)展,導致電子商城大量的涌現(xiàn),而電子商城的出現(xiàn)不僅改變了人們傳統(tǒng)的購物方式,也逐漸的影響著人們的消費觀,一個好的電子商城不僅能給客戶帶來方便,更能給企業(yè)帶來巨大的財富。本商城主要利用J2EE與Ajax技術(shù)進行開發(fā),有很強的安全性、可靠性、可擴展性。其前臺實現(xiàn)了從商品選購到訂單提交整個業(yè)務(wù)流程,后臺實現(xiàn)了對整個系統(tǒng)的管理,就整體功能而言,基本能滿足基本的網(wǎng)上購物需求,相信一定能讓用戶感到便捷、快速,讓企業(yè)管理、維護更簡單。設(shè)計目的與任務(wù)隨著信息化技術(shù)在生活中的應用越來越廣泛,網(wǎng)上購物也逐漸成為人們的一種生活方式。本系統(tǒng)正是基于這樣一種環(huán)境下應運而生。本電子商城分為前、后臺兩部分,前臺主要實現(xiàn)會員的網(wǎng)上購物業(yè)務(wù)流程,后臺則由各種管理員對商城會員、商品、定單等內(nèi)容進行管理。系統(tǒng)設(shè)計3.1分層模式本系統(tǒng)的開發(fā)主要分為以下幾層:表示層、業(yè)務(wù)層、DAO層、持久層。業(yè)務(wù)層和DAO層都通過接口與其它層進行連接從而減小了各層之間的耦合度,實現(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輕量級框架S2SH、MD5算法、Log4j、Ajax、JSON。S2SH集成框架是Struts、Spring和Hibernate三種技術(shù)的有機融合,是目前應用最廣泛的JavaEE架構(gòu)。在S2SH集成框架中,Struts的作用是提供MVC模型,將界面、業(yè)務(wù)邏輯和數(shù)據(jù)分離,并提供一個高可擴展的架構(gòu)。Spring作為核心,向上整合MVC框架,向下整合ORM框架,使用Spring的IoC容器來管理各組件之間之間的依賴關(guān)系,Spring的聲明事務(wù)將負責邏輯層組件的事務(wù)管理。而Hibernate提供了一個抽象的數(shù)據(jù)服務(wù)視圖,將用戶對數(shù)據(jù)庫的訪問進行高度抽象。Struts是目前創(chuàng)建Web應用最常用的表現(xiàn)層MVC框架實現(xiàn),是JakartaApache的一個開源項目?;贛odel2的Struts框架利用控制器和定制標簽庫將應用中的模型和視圖分離,達到了層間松散耦合的效果,同時提高系統(tǒng)的靈活性、重用性和維護性。作為開源項目,Struts經(jīng)受了大量實踐的檢驗,功能越來越強大,體系也日臻完善,并且對其他技術(shù)和框架顯示出良好的融合性。圖3-2Struts2.0MVC結(jié)構(gòu)圖Spring由RodJohnson創(chuàng)建,它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)IoC和面向切面AOP的容器框架。圖3-3Spring功能圖Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用。圖3-4Hibernate運行圖AJAX是AsynchronoutJavaScriptandXML的縮寫,它并不是一門新的語言或技術(shù),實際上是幾項技術(shù)按一定的方式組合在一起,在共同的協(xié)作中發(fā)揮各自的作用,它包括:使用XHTML和CSS標準化呈現(xiàn);使用DOM實現(xiàn)動態(tài)顯示和交互;使用XML和XSLT進行數(shù)據(jù)交換和處理;使用XMLHttpRequest進行異步數(shù)據(jù)讀??;最后用JavaScript綁定和處理所有數(shù)據(jù)。AJAX的一個最大的特點是無需刷新頁面便可向服務(wù)器傳輸或讀寫數(shù)據(jù)(又稱無刷新頁面),這一特點要得益于XMLHTTP組件XMLHttpRequest對象。這樣就可以像再發(fā)桌面應用程序只同服務(wù)器進行數(shù)據(jù)層面的交換,而不用每次都刷新界面,也不用每次將數(shù)據(jù)處理的工作提交給服務(wù)器來做,這樣即減輕了服務(wù)器的負擔又加快了響應速度、縮短了用戶等候時間。圖3-5Ajax模型JSON(JavaScriptObjectNotation,JavaScript對象標記)是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時也易于機器解析和生成。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一個子集。JSON采用與編程語言無關(guān)的文本格式,但是也使用了類C語言的習慣,這些特性使JSON成為理想的數(shù)據(jù)交換格式。而AJAX可以利用JSON更加有效地接收數(shù)據(jù),因為JSON特殊的屬性。在Struts2的showcase中的AJAX部分,JSON的結(jié)果輸出是通過Freemaker模板實現(xiàn)。這種方法在簡易性和靈活性上都比不上JSON插件。MessageDigestAlgorithmMD5(中文名為消息摘要算法第五版)為計算機安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護。當用戶登錄的時候,系統(tǒng)把用戶輸入的密碼進行MD5Hash運算,然后再去和保存在文件系統(tǒng)中的MD5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道。Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務(wù)器、NT的事件記錄器、UNIXSyslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。3.2總體設(shè)計3.2.1系統(tǒng)總體結(jié)構(gòu) 本系統(tǒng)分為前臺和后臺兩部分,前臺提供一條網(wǎng)上購物業(yè)務(wù)流程的功能實現(xiàn),主要實現(xiàn)模塊見圖3-1;后實現(xiàn)對前臺功能信息的管理,主要實現(xiàn)模塊見圖3-2。前臺功能模塊:圖3-6:前臺功能模塊后臺功能模塊:圖3-7:后臺功能模塊3.2.2流程圖前臺主要分為非會員用戶和會員用戶,其中只有會員用戶才能實現(xiàn)在線購物,而非會員用戶必需進行注冊。后臺用戶主要分為商品管理員、會員管理員、定單管理員、系統(tǒng)維護員,不同的管理員實現(xiàn)不同的功能。前臺流程圖:圖3-8:前臺流程圖后臺流程圖:圖3-9:后臺流程圖3.3詳細設(shè)計3.3.1數(shù)據(jù)庫設(shè)計本系統(tǒng)數(shù)據(jù)庫開發(fā)主要基于Mysql6.0數(shù)據(jù)庫管理工具,包括8個數(shù)據(jù)庫表如下所示:數(shù)據(jù)字典e_shop數(shù)據(jù)表清單:表名 解釋 ADMIN 管理員表 CART 購物車表 EVALUATE 商品評價表 MEMBER 會員表 MERCHANTABLE 商品表 ORDERS 定單表 RECORD 記錄表 TYPES 類別表 表名:ADMIN解釋:ADMINadmin 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 ADMIN_ID 管理員編號 INT2 2 ADMIN_NAME 管理員名 VARCHAR50 50 ADMIN_PWD 管理員密碼 VARCHAR30 20 ADMIN_TYPE 管理員種類 INT1 1 [返回]
表名:CART解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 CART_ID 購物車編號 INT5 5 CART_MEM_ID 會員編號 INT5 5 是 CART_MER_ID 商品編號 INT6 6 是 CART_NUM 商品數(shù)量 INT3 3 是 [返回]
表名:EVALUATE解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 EVAL_ID 評價編號 INT3 3 EVAL_MEM_ID 會員編號 INT5 5 是 EVAL_MER_ID 商品編號 INT6 6 是 EVAL_DATE 評價日期 VARCHAR20 20 是 EVAL_CONTENT 評價內(nèi)容 VARCHAR200 200 是 [返回]
表名:MEMBER解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 MEM_ID 會員編號 INT5 5 MEM_NAME 會員名稱 VARCHAR50 50 MEM_PWD 會員密碼 VARCHAR30 20 MEM_TEL VARCHAR15 15 是 MEM_ADDRESS 聯(lián)系地址 VARCHAR50 50 是 MEM_REGIST_DATE 注冊日期 VARCHAR10 10 是 MEM_POST 郵編 VARCHAR10 10 是 MEM_EMAIL EMAIL VARCHAR20 20 是 MEM_CART_ID 購物車編號 INT5 5 是 [返回]
表名:MERCHANTABLE解釋:MERCHANTABLEmerchantable 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 MER_ID 商品編號 INT6 6 MER_NAME 商品名稱 VARCHAR50 50 MER_TYPE_ID 商品種類 INT3 3 是 MER_PLACE 出產(chǎn)地 VARCHAR50 50 是 MER_PRICE 價格 DECIMAL8,2 8 MER_DISCOUNT 折扣 DECIMAL2,1 2 是 MER_PICTURE 圖片 VARCHAR50 50 是 MER_DESC 描述 VARCHAR50 50 是 MER_PRODUCTER 廠家 VARCHAR60 60 是 MER_LEAVE_DATE 出廠時間 VARCHAR10 10 是 MER_ADD_DATE 添加時間 VARCHAR10 10 是 MER_NUM 銷售數(shù)量 INT 0 [返回]
表名:ORDERS解釋:ORDERSorders 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 ORDER_ID 定單編號 INT6 6 ORDER_DATE 定單日期 VARCHAR20 20 是 ORDER_MEM_ID 會員編號 INT5 5 是 ORDER_STATUS 定單狀態(tài) INT1 1 是 ORDER_SEND_TIME 發(fā)送時間 VARCHAR60 60 是 ORDER_REMARK 定單備注 VARCHAR100 100 是 ORDER_SUM 價錢總和 DECIMAL8,2 8 是 [返回]
表名:RECORD解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 RECORD_ID 記錄編號 INT6 6 RECORD_MER_ID 商品編號 INT6 6 是 RECORD_MER_NUM 商品數(shù)量 INT3 3 是 RECORD_ORDER_ID 定單編號 INT6 6 是 [返回]
表名:TYPES解釋: 是否主鍵 字段名 字段描述 數(shù)據(jù)類型 長度 可空 約束 缺省值 備注 是 TYPE_ID 類別編號 INT3 3 TYPE_NAME 類別名稱 VARCHAR30 30 是 TYPE_DESC 類別描述 VARCHAR100 100 是 [返回]Struts配置文件圖3-13Struts配置文件圖3.3.2具體模塊設(shè)計整個系統(tǒng)主要包括商品信息模塊、會員模塊、購物車模塊、訂單模塊、商品類別、后臺管理員模塊。商品信息模塊:本模塊主要用來顯示、查詢和商品評論的功能。主要涉及的類和方法如下類圖。其中PageServiceImpl為分頁實現(xiàn)類,在整個系統(tǒng)中屬于一個公共組件,故在各模塊中不再重復介紹。另一方面各模塊各層之間類的關(guān)系也大致相同,都可以參考以下類圖。圖3-14商品模塊類圖類名 含義 MerchantableAction 作為其控制層內(nèi)容,調(diào)用相應的業(yè)務(wù)方法 HeadService 業(yè)務(wù)層抽象類,其實現(xiàn)類中包含相應的業(yè)務(wù)方法 MerchantableDAO 包含相應的持久層方法 類名: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)用持久層方法按商品編號查詢商品 findByType 調(diào)用持久層方法按種類查詢商品 researchMer 按條件查詢商品 deleteMer 刪除商品 updateMer 修改商品 saveMer 保存商品 類名:MerchantableDAO方法 含義 findAllByKeyword 按關(guān)鍵字查詢所有商品 findByTypes 按各類查詢商品 findById 按商品編號查詢商品 delete 刪除商品 findAll 查詢所有商品 saveOrUpdate 保存或修改商品 findByNum 依據(jù)數(shù)量查詢 findPartByTyps 依據(jù)種類查詢部分商品 會員模塊: 在本??熘杏玫搅藘煽刂茖宇怢oginAction和LoginJsonAction,前者用于普通的控制調(diào)用業(yè)務(wù)層方法,同時返回相應的業(yè)務(wù)邏輯視圖。后者則是用Struts和Json相結(jié)合應用的,首先是能過Ajax提交數(shù)據(jù)當相應的action,然后調(diào)用業(yè)務(wù)層方法處理完成返回并不是返回某個邏輯視圖,而是將返回的信息通過Json進行數(shù)據(jù)轉(zhuǎn)換,前臺通過Ajax接收數(shù)據(jù)。類名 含義 LoginAction 普通形式的控制器,調(diào)用相應的業(yè)務(wù)層方法 LoginJsonAction Ajax提交時使用的控制器 UserService 業(yè)務(wù)層類,包含各種相應的業(yè)務(wù)處理方法 MemberDAO 包含相應的持久層方法 LoginAction類:方法 含義 modifyPwd 調(diào)用業(yè)務(wù)層方法修改會員密碼 modifyAddress 調(diào)用業(yè)務(wù)層方法修改會員地址等信息 regist 調(diào)用業(yè)務(wù)層方法注冊 showMem 調(diào)用業(yè)務(wù)層方法后臺顯示所有會員 delMem 調(diào)用業(yè)務(wù)層方法刪除會員 LoginJsonAction類:方法 含義 execute 調(diào)用業(yè)務(wù)層方法會員登錄校驗 UserService類:方法 含義 modifyPwd 修改會員密碼 modifyAddress 修改會員地址等信息 save 保存會員 delMem 刪除會員 MemberDAO類:方法 含義 findByNameAndPwd 按用戶名和密碼查詢用戶 saveOrUpdate 保存或修改會員信息 findAll 查詢所有會員 delete 刪除會員 購物車模塊: 同上面的會員模板,在此模塊中也有兩個控制類CartAction和CartJsonAction。類名 含義 CartAction 普通形式的控制器,調(diào)用相應的業(yè)務(wù)層方法 CartJsonAction Ajax提交時使用的控制器 HeadService 業(yè)務(wù)層類,包含各種相應的業(yè)務(wù)處理方法 CartDAO 包含相應的持久層方法 CartAction類:方法 含義 execute 調(diào)用業(yè)務(wù)層方法查詢會員相應的購物車 update 調(diào)用業(yè)務(wù)層方法修改購物車 delete 調(diào)用業(yè)務(wù)層方法刪除購物車 CartJsonAction類:方法 含義 add 添加商品到購物車 HeadService類:方法 含義 findCartByMember 依據(jù)會員查詢相應的購物車 updateCart 修改購物車 deleteCart 刪除購物車中的商品 addMerToCart 將商品加入購物車 CartDAO類:方法 含義 findByMember 依據(jù)會員查詢相應的購物車 updateCart 修改購物車 delete 刪除購物車中的商品 saveCart 將商品加入購物車 訂單模塊類名 含義 OrderAction 控制器調(diào)用相應的業(yè)務(wù)層方法 HeadService 業(yè)務(wù)層類,包含各種相應的業(yè)務(wù)處理方法 OrderDAO 包含相應的持久層方法 OrderAction類:方法 含義 execute 調(diào)用業(yè)務(wù)層方法顯示訂單 addOrder 調(diào)用業(yè)務(wù)層方法添加 historyOrder 調(diào)用業(yè)務(wù)層方查看歷史訂單 modifyOrder 調(diào)用業(yè)務(wù)層方法進入修改訂單 deleteOrder 調(diào)用業(yè)務(wù)層方法刪除訂單 showOrders 調(diào)用業(yè)務(wù)層方法顯示所有訂單 submit 調(diào)用業(yè)務(wù)層方法確認定單、發(fā)貨 HeadService類:方法 含義 addOrder 添加訂單 findHistoryOrder 查尋歷史訂單 deleteOrde 刪除訂單 updateOrders 修改訂單 OrderDAO類:方法 含義 findById 據(jù)編號查詢訂單 findHistoryOrder 查尋歷史訂單 delete 刪除訂單 saveOrUpdate 保存或修改訂單 商品類別模板:類名 含義 TypesAction 控制器調(diào)用相應的業(yè)務(wù)層方法 HeadService 業(yè)務(wù)層類,包含各種相應的業(yè)務(wù)處理方法 TypesDAO 包含相應的持久層方法 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ù)層方法推薦某類商品到首頁 cancelRecommend 調(diào)用業(yè)務(wù)層方法取消推薦 HeadService類:方法 含義 findByReCommend 查詢推薦的商品 findAllTypes 查詢所有類別 deleteType 刪除類別 saveType 保存類別 updateType 修改類別 TypesDAO類:方法 含義 findByRecommend 查詢被推薦的類別 findById 據(jù)編號查詢所有類別 findAll 查詢所有類別 saveOrUpdate 保存或修改類別 delete 刪除類別 后臺管理員模塊:類名 含義 AdminAction 控制器調(diào)用相應的業(yè)務(wù)層方法 UserService 業(yè)務(wù)層類,包含各種相應的業(yè)務(wù)處理方法 AdminDAO 包含相應的持久層方法 AdminAction類:方法 含義 valAdmin 調(diào)用業(yè)務(wù)層方法校驗用戶 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 校驗用戶 saveAdmin 保存管理員 updateAdmin 修改管理員 delAdmin 刪除管理員 AdminDAO類:方法 含義 findAdminByNameAndPwd 據(jù)用戶名與密碼查詢用戶 saveOrUpdate 保存或保存管理員 Delete 刪除管理員 findById 依據(jù)編號查詢管理員 時序圖通過描述對象之間發(fā)送消息的時間順序顯示多個對象之間的動態(tài)協(xié)作。它可以表示用例的行為順序,當執(zhí)行一個用例行為時,時序圖中的每條消息對應了一個類操作或狀態(tài)機中引起轉(zhuǎn)換的觸發(fā)事件。CREATETABLEadmin admin_idINT2AUTO_INCREMENT, admin_nameVARCHAR50NOTNULL, admin_pwdVARCHAR30NOTNULL, admin_typeINT1NOTNULL, CONSTRAINTPK_ADMIN_IDPRIMARYKEYadmin_id;#會員表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;#商品評價表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;#購物車購物車號即為會員編號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;#購物記錄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à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ù)庫的驅(qū)動-- propertyname"driverClass"value"com.mysql.jdbc.Driver"/ !--指定連接數(shù)據(jù)庫的URL-- propertyname"jdbcUrl"value"jdbc: !--指定連接數(shù)據(jù)庫的用戶名-- propertyname"user"value"root"/ !--指定連接數(shù)據(jù)庫的密碼-- propertyname"password"value"root"/ !--指定連接數(shù)據(jù)庫連接池的最大連接數(shù)-- propertyname"PoolSize"value"40"/ !--指定連接數(shù)據(jù)庫連接池的最小連接數(shù)-- propertyname"minPoolSize"value"1"/ !--指定連接數(shù)據(jù)庫連接池的初始化連接數(shù)-- propertyname"initialPoolSize"value"1"/ !--指定連接數(shù)據(jù)庫連接池的連接的最大空閑時間-- 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ù)需要每次自動創(chuàng)建數(shù)據(jù)庫-- propkey"hibernate.hbm2ddl.auto"update !--顯示Hibernate持久化操作所生成的SQL-- propkey"hibernate.show_sql"true !--將SQL腳本進行格式化后再輸出-- 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 !--配置一個切入點匹配指定包下所有類-- aop:config aop:pointcutid"pointcut"expression"execution*com.eshop.service.impl.*Impl.*.."/ aop:advisoradvice-ref"txAdvice"pointcut-ref"pointcut"/ /aop:config !--引進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注意默認為單例模式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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)項目協(xié)議書
- 企業(yè)治安協(xié)議書
- 經(jīng)營合同延期協(xié)議
- 修復院墻協(xié)議書
- 公關(guān)顧問協(xié)議書
- 2025 九年級數(shù)學上冊一元二次方程水流問題課件
- 大數(shù)據(jù)賦能企業(yè)財務(wù)分析的精準性-數(shù)據(jù)挖掘與決策高效研究畢業(yè)論文答辯
- 2025 九年級數(shù)學上冊旋轉(zhuǎn)綜合題解題策略課件
- 應急法規(guī)培訓課件
- 2025 九年級數(shù)學上冊投影與視圖三維想象訓練課件
- 2025年齊齊哈爾市總工會工會社會工作者招聘39人考試筆試模擬試題及答案解析
- 慈溪白骨案課件
- 2024南江輔警考試真題及答案
- 小兒腎挫傷的護理措施
- 2025中原證券股份有限公司招聘55人筆試考試參考試題及答案解析
- 醫(yī)療不良事件上報與績效聯(lián)動策略
- 學堂在線 雨課堂 學堂云 科研倫理與學術(shù)規(guī)范 章節(jié)測試答案
- 骨相美學理論課件
- 2025年空氣采樣操作流程試題有答案
- 2025年度數(shù)字化城市管理信息系統(tǒng)安全自查報告
- 營銷沙盤實訓報告
評論
0/150
提交評論