基于SSH電子商城的設(shè)計(jì)實(shí)現(xiàn)分析-畢業(yè)論文_第1頁
基于SSH電子商城的設(shè)計(jì)實(shí)現(xiàn)分析-畢業(yè)論文_第2頁
基于SSH電子商城的設(shè)計(jì)實(shí)現(xiàn)分析-畢業(yè)論文_第3頁
基于SSH電子商城的設(shè)計(jì)實(shí)現(xiàn)分析-畢業(yè)論文_第4頁
基于SSH電子商城的設(shè)計(jì)實(shí)現(xiàn)分析-畢業(yè)論文_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-. z.理工學(xué)院畢業(yè)設(shè)計(jì)論文基于SSH電子商城的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生:甘波聯(lián) 系 QQ:923099645專 業(yè):軟件工程班 級:2011級5班指導(dǎo)教師:袁超理工學(xué)院計(jì)算機(jī)學(xué)院二一五年六月-. z.基于ssh電子商城的設(shè)計(jì)與實(shí)現(xiàn)摘 要本網(wǎng)上購物系統(tǒng)是一個(gè)基于SSH,采用B2C模式,并根據(jù)現(xiàn)有的網(wǎng)上購物系統(tǒng)的現(xiàn)狀而設(shè)計(jì)開發(fā)的電子商務(wù)平臺(tái)。系統(tǒng)主要以J2EE作為開發(fā)根底,使用了struts+spring+hibernate等技術(shù),用Eclipse作為開發(fā)工具,以Macromedia公司的Dreamweaver作為界面美化工具。本系統(tǒng)分有兩個(gè)子系統(tǒng),前臺(tái)系統(tǒng)和后臺(tái)管理系統(tǒng),其中后臺(tái)管理系統(tǒng)實(shí)現(xiàn)了商城管

2、理的根本功能,包括:用戶管理模塊、商品管理模塊、類別管理模塊、品牌管理模塊、新聞管理模塊、訂單管理模塊和評論管理模塊。管理員通過上述功能可以更好的管理網(wǎng)上商城。本系統(tǒng)具有多方面特點(diǎn):系統(tǒng)功能完備,使用方便簡捷,人性化的用戶界面,節(jié)省經(jīng)營本錢,大大減少了操作人員的工作負(fù)擔(dān)。關(guān)鍵詞:電子商務(wù);網(wǎng)上購物系統(tǒng);商品管理模塊;-. zThe design and implementation of electronic mall based on SSHABSTRACTThe online shopping system is a B2C model based on the SSH, and in a

3、ccordance with the status quo of the e*isting online shopping system design and development of e-merce platform. This system mainly uses J2EE as the basis of development, and use of technologies such as struts + spring + hibernate. This project use Eclipse as the development tools, and Macromedias D

4、reamweaver as the interfaces landscaping tools. The system is divided into two subsystems, front system and background management system, the background management system to achieve the basic functions of the mall management. Which include user management module, goods management module, category ma

5、nagement module, brand management module, news management module, order management module and assess management module. Administrators can better manage online store through these functionsThis system has the various characteristics: The system function is plete, using convenient, humanized customer

6、 interface, economical management cost, reduced to operate the personnels work burden consumedly.Key Words:e-merce;online shopping system;goods management module-. z.目 錄TOC o 1-3 f h u HYPERLINK l _Toc421534862概述 PAGEREF _Toc421534862 h 1HYPERLINK l _Toc421534863第1章 系統(tǒng)需求分析 PAGEREF _Toc421534863 h 2H

7、YPERLINK l _Toc4215348641.1系統(tǒng)設(shè)計(jì)目的 PAGEREF _Toc421534864 h 2HYPERLINK l _Toc4215348651.2系統(tǒng)需求 PAGEREF _Toc421534865 h 2HYPERLINK l _Toc421534866功能需求 PAGEREF _Toc421534866 h 2HYPERLINK l _Toc421534867性能需求PAGEREF _Toc421534867 h 3HYPERLINK l _Toc4215348681.3運(yùn)行環(huán)境 PAGEREF _Toc421534868 h 4HYPERLINK l _Toc

8、421534869硬件環(huán)境: PAGEREF _Toc421534869 h 4HYPERLINK l _Toc421534870軟件環(huán)境 PAGEREF _Toc421534870 h 4HYPERLINK l _Toc421534871第2章 系統(tǒng)設(shè)計(jì) PAGEREF _Toc421534871 h 5HYPERLINK l _Toc4215348722.1 MVC模式分析 PAGEREF _Toc421534872 h 5HYPERLINK l _Toc421534873模型(Model) PAGEREF _Toc421534873 h 5HYPERLINK l _Toc42153487

9、4視圖(View) PAGEREF _Toc421534874 h 5HYPERLINK l _Toc421534875控制器(Controller) PAGEREF _Toc421534875 h 5HYPERLINK l _Toc4215348762.2 SSH分析 PAGEREF _Toc421534876 h 6HYPERLINK l _Toc4215348772.2.1 Struts2框架: PAGEREF _Toc421534877 h 7HYPERLINK l _Toc4215348782.2.2 Hibernate框架: PAGEREF _Toc421534878 h 10HY

10、PERLINK l _Toc4215348792.2.3 Spring框架: PAGEREF _Toc421534879 h 12HYPERLINK l _Toc4215348802.3 SSH的整合 PAGEREF _Toc421534880 h 15HYPERLINK l _Toc4215348812.3.1 Spring整合Hibernate PAGEREF _Toc421534881 h 15HYPERLINK l _Toc4215348822.3.2 Spring整合Struts2 PAGEREF _Toc421534882 h 17HYPERLINK l _Toc421534883

11、2.3.3 Struts2、Hibernate和Spring的整合開發(fā) PAGEREF _Toc421534883 h 18HYPERLINK l _Toc4215348842.4前臺(tái)分頁方法改良 PAGEREF _Toc421534884 h 18HYPERLINK l _Toc4215348852.5數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc421534885 h 19HYPERLINK l _Toc421534886系統(tǒng)ER圖如圖2-4所示 PAGEREF _Toc421534886 h 20HYPERLINK l _Toc4215348872.5.2 數(shù)據(jù)庫字典 PAGEREF _Toc42

12、1534887 h 20HYPERLINK l _Toc4215348882.5.3 系統(tǒng)總體構(gòu)造 PAGEREF _Toc421534888 h 23HYPERLINK l _Toc4215348892.5.4 流程圖 PAGEREF _Toc421534889 h 24HYPERLINK l _Toc421534890第3章 功能實(shí)現(xiàn) PAGEREF _Toc421534890 h 26HYPERLINK l _Toc4215348913.1前臺(tái)功能實(shí)現(xiàn) PAGEREF _Toc421534891 h 27HYPERLINK l _Toc421534892前臺(tái)頁面效果圖 PAGEREF _

13、Toc421534892 h 27HYPERLINK l _Toc4215348933.2后臺(tái)功能實(shí)現(xiàn) PAGEREF _Toc421534893 h 34HYPERLINK l _Toc421534894后臺(tái)頁面效果圖 PAGEREF _Toc421534894 h 34HYPERLINK l _Toc421534895第4章 完畢語 PAGEREF _Toc421534895 h 36HYPERLINK l _Toc4215348964.1論文總結(jié) PAGEREF _Toc421534896 h 36HYPERLINK l _Toc4215348974.2未來工作 PAGEREF _Toc

14、421534897 h 36HYPERLINK l _Toc421534898致 PAGEREF _Toc421534898 h 38HYPERLINK l _Toc421534899參考文獻(xiàn) PAGEREF _Toc421534899 h 39HYPERLINK l _Toc421534900附錄 PAGEREF _Toc421534900 h 40HYPERLINK l _Toc421534901附錄A: 系統(tǒng)關(guān)鍵源代碼 PAGEREF _Toc421534901 h 40HYPERLINK l _Toc4215349021 struts2核心配置文件struts.*ml源代碼 PAGER

15、EF _Toc421534902 h 40HYPERLINK l _Toc4215349032 Spring核心配置文件applicationConte*t.*ml源代碼 PAGEREF _Toc421534903 h 43HYPERLINK l _Toc4215349043 易寶第三方支付工具類源代碼 PAGEREF _Toc421534904 h 45HYPERLINK l _Toc4215349054發(fā)送代碼 PAGEREF _Toc421534905 h 49HYPERLINK l _Toc4215349065 SSH整合中的分頁工具類 PAGEREF _Toc421534906 h

16、51HYPERLINK l _Toc4215349076系統(tǒng)高級查詢的工具類 PAGEREF _Toc421534907 h 53HYPERLINK l _Toc4215349087 訂單高級查詢的工具類 PAGEREF _Toc421534908 h 55HYPERLINK l _Toc4215349098 注冊使用AJA*異步校驗(yàn)用戶名 PAGEREF _Toc421534909 h 56HYPERLINK l _Toc4215349109 web工程核心配置文件web.*ml PAGEREF _Toc421534910 h 57HYPERLINK l _Toc42153491110后臺(tái)登

17、錄攔截器 PAGEREF _Toc421534911 h 58HYPERLINK l _Toc421534913附錄B: 系統(tǒng)代碼目錄構(gòu)造 PAGEREF _Toc421534913 h 59HYPERLINK l _Toc421534914附錄C: 系統(tǒng)使用說明書 PAGEREF _Toc421534914 h 59-. z.概述21世紀(jì)是信息的世界,隨著信息化的浪潮席卷全球,傳統(tǒng)的商務(wù)模式受到巨大的沖擊。越來越多的企業(yè)和個(gè)人消費(fèi)者,在 Internet 開放的網(wǎng)絡(luò)環(huán)境下,一種基于瀏覽器效勞器應(yīng)用模式,實(shí)現(xiàn)消費(fèi)者網(wǎng)上購物,商戶之間的網(wǎng)上交易和在線電子支付的新型的商業(yè)運(yùn)營模式電子商務(wù)應(yīng)運(yùn)而生。

18、目前做得比擬成功的電子商務(wù)平臺(tái),國有:當(dāng)當(dāng)網(wǎng),阿里巴巴,淘寶,京東商城,慧聰網(wǎng)等,國外有:亞馬遜,eBuy等。電子商務(wù)在中國也開展了一段時(shí)間,目前在國也有很多電子商務(wù)的平臺(tái),通過分析國的電子商務(wù)可知,目前國的電子商務(wù)做的都是集合型,一個(gè)平臺(tái)中各個(gè)方面的商務(wù)領(lǐng)域似乎都有涉及到。像比擬有名的一些網(wǎng)購平臺(tái),如:八點(diǎn)優(yōu)網(wǎng),郵樂網(wǎng),京東商城,易百,淘寶網(wǎng),拍拍網(wǎng),紅孩網(wǎng)等電子商務(wù),涉及的門類都很多,而且他們都有一個(gè)共通的特點(diǎn)就是只有產(chǎn)品的展示與訂購,很少有廠家企業(yè)的介紹。目前中國能用上電子商務(wù)平臺(tái)的都是一些大中型的企業(yè),而大局部的中小型,特別是小型企業(yè)還是用著以前的生意模式,靠朋友,靠關(guān)系,靠老客戶來維

19、持企業(yè),這種模式在過去的時(shí)代會(huì)有一定的優(yōu)勢,但在信息網(wǎng)絡(luò)時(shí)代這種模式缺乏主動(dòng)性,往往會(huì)使企業(yè)處在被動(dòng)的狀態(tài)。像阿里巴巴這樣的大型電子商務(wù)平臺(tái)是能很好地幫助企業(yè)做宣傳,聯(lián)系客戶,但是阿里巴巴根本上是面對大中型的企業(yè),每年的管理費(fèi)用都非常高,對于一些中小企業(yè)要承受一筆高的資金是很困難的。為了能夠上中小型企業(yè)特別是小型企業(yè)能夠用上電子商務(wù)平臺(tái),我們特地開發(fā)此系統(tǒng),使中小型企業(yè)也能做到生產(chǎn),宣傳,銷售一條龍。 本系統(tǒng)采用SSH(Struts,Spring,Hibernate)框架來開發(fā)。SSH框架是目前J2EE領(lǐng)域里最熱門而且用得較為成熟的一套開源框架,它是基于MVC設(shè)計(jì)模式之上,在充分發(fā)揮MVC設(shè)計(jì)

20、模式優(yōu)點(diǎn)的同時(shí),也創(chuàng)造出了自己的開發(fā)特點(diǎn),降低了應(yīng)用程序的耦合性,更進(jìn)一步提高了應(yīng)用程序的復(fù)用性、移植性、靈活性、擴(kuò)展性和應(yīng)用性能。SSH是一套輕量級的開發(fā)框架,相對于E重量級開發(fā)框架,SSH在繼承了它的優(yōu)點(diǎn)的同時(shí),在開發(fā)和執(zhí)行效率上都有了相當(dāng)程度的提高,同時(shí)對于開發(fā)者而言,它比E更容易學(xué)習(xí)和撐握,開發(fā)速度也更快。目前Struts和Spring開展到2.0版本,Hibernate開展到3.0版本,SSH框架也正在不斷地進(jìn)展優(yōu)化和升級,運(yùn)行也越來越穩(wěn)定。 系統(tǒng)需求分析系統(tǒng)設(shè)計(jì)目的隨著Inertnet的不斷普及,計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用的飛速開展,電子商務(wù)成在生活中已經(jīng)不可或缺,網(wǎng)上購物也逐漸成為人們的一種

21、生活方式。本系統(tǒng)正是基于這樣一種環(huán)境下應(yīng)運(yùn)而生。本系統(tǒng)設(shè)計(jì)目的旨在建立一個(gè)以SSH框架為根底,構(gòu)造靈活、可復(fù)用、可擴(kuò)展,開發(fā)快速且輕量的電子商務(wù)應(yīng)用平臺(tái)。系統(tǒng)框架和企業(yè)子系統(tǒng)為本人設(shè)計(jì)的主要目標(biāo),能夠根據(jù)業(yè)務(wù)需求變化可以靈活操作系統(tǒng)功能模塊,根據(jù)企業(yè)變化能夠自由添加、修改、刪除企業(yè)子系統(tǒng)是實(shí)現(xiàn)以上目標(biāo)的關(guān)鍵。 系統(tǒng)需求功能需求1前臺(tái)功能:首頁:為企業(yè)提供一個(gè)首頁,在上面顯示的重要信息包括企業(yè)LOGO,用戶的登錄,用戶的注冊,一級分類顯示,最新商品及熱門商品顯示等。用戶的注冊:主要針對未注冊的用戶,完成注冊功能使用,在注冊過程中,需要進(jìn)展數(shù)據(jù)的前臺(tái)非空校驗(yàn),及使用AJA*完成用戶名是否存在的異步

22、校驗(yàn)。在校驗(yàn)通過后即可完成注冊,在后臺(tái)同樣需要進(jìn)展數(shù)據(jù)校驗(yàn)及發(fā)送一封激活。用戶的激活:已經(jīng)注冊的用戶,需要進(jìn)入點(diǎn)擊激活進(jìn)展用戶的激活。用戶的登錄:已經(jīng)注冊的用戶,并且該用戶已經(jīng)激活的情況下,輸入用戶名和密碼即可激活用戶。用戶的退出:針對已經(jīng)登錄的用戶,退出該系統(tǒng)使用。 首頁商品展示:顯示最新商品及熱門商品。方便用戶了解最新以及最熱門商品。分類頁面商品展示:根據(jù)*個(gè)分類的信息去展示商品??梢苑奖阌脩舨檎蚁鄳?yīng)分類商品。商品詳情展示:點(diǎn)擊*個(gè)具體商品的時(shí)候,可以顯示商品的詳情。以便用戶可以方便的了解商品的具體信息。購物車:此功能為用戶提供購物功能,用戶可以根據(jù)自己需要,將自己喜歡的商品添加到購物車,

23、也可以從購物車中移除商品,甚至清空購物車中的所有商品。訂單:登錄用戶可以將自己喜歡商品進(jìn)展購置,產(chǎn)生訂單。可以對自己產(chǎn)生的訂單進(jìn)展在線的付款。以及可以根據(jù)用戶信息,查詢自己的訂單。2 后臺(tái)功能:管理員登錄:管理員根據(jù)用戶名和密碼完成登錄功能。 一級分類管理:管理員可以對前臺(tái)顯示的一級分類進(jìn)展管理包括添加,修改,刪除,查詢的功能操作。二級分類管理:管理員可以對前臺(tái)顯示的二級分類進(jìn)展管理包括添加,修改,刪除,查詢的功能操作。 商品管理:管理員可以對前臺(tái)上顯示的商品進(jìn)展管理包括添加,修改,刪除,查詢的功能操作同時(shí)要可以上傳商品的圖片。 訂單管理:管理員可以對所有的用戶產(chǎn)生的訂單進(jìn)展管理包括未付款的,

24、已經(jīng)付款的,已經(jīng)發(fā)貨的,交易完成的訂單??梢孕薷挠唵螤顟B(tài)及異步加載訂單項(xiàng)。用戶管理:管理員可以對注冊過的用戶進(jìn)展管理包括修改用戶信息,刪除用戶,查詢用戶。 性能需求1響應(yīng)時(shí)間與存使用量:忽略網(wǎng)絡(luò)環(huán)境因素、主題模板及功能插件運(yùn)作的因素,以本地測試為準(zhǔn)。 數(shù)據(jù)庫安裝響應(yīng):時(shí)間2秒,存使用量最高上限8,000,000 bytes。 前臺(tái)瀏覽響應(yīng)時(shí)間:時(shí)間0.8秒,存使用量最高上限9,000,000 bytes。 后臺(tái)操作響應(yīng)時(shí)間:時(shí)間0.9秒,存使用量最高上限9,000,000 bytes。 2平安性: 后臺(tái)的界面訪問、路徑訪問、操作執(zhí)行的前后,均受登陸會(huì)話管理和用戶權(quán)限管理的控制。運(yùn)行環(huán)境硬件環(huán)境

25、:效勞器端: 效勞器端的最低配置是由建立站點(diǎn)所需的軟件來決定的,本網(wǎng)絡(luò)系統(tǒng)效勞器端的最低配置如下: 處理器:Inter PentiumCeleron 4 2.4GHz 或更高。 存:2G 硬盤空間:160G 顯卡:SVGA顯示適配器 客戶端: 因?yàn)榭蛻舳酥饕糜跒g覽和操作數(shù)據(jù),所以對客戶端的硬件要求不高,不過現(xiàn)在的電腦有很高的性價(jià)比,因此需要的配置應(yīng)該高于下面的配置:處理器:Inter PentiumCeleron 4 1.6GHz 或更高。存:512MB 硬盤空間:160GB顯卡:SVGA顯示適配器 軟件環(huán)境效勞器端: 操作系統(tǒng):Windows NT/2000/2003 效勞器:Tomcat

26、7.* + jdk7.* 數(shù)據(jù)庫管理系統(tǒng):MySQL5.* 用戶端: 操作系統(tǒng):Windows NT/2000/2003/window7/Windows Seven系統(tǒng)設(shè)計(jì)2.1MVC模式分析MVC是一種將應(yīng)用程序的邏輯層和表現(xiàn)層進(jìn)展別離的方法。MVC 式的出現(xiàn)不僅實(shí)現(xiàn)了功能模塊和顯示模塊的別離,同時(shí)它還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性。2.1.1模型(Model)模型是應(yīng)用程序的主體局部。模型表示業(yè)務(wù)數(shù)據(jù)。通常來說,你的模型類將包含取出、插入、更新、刪除你的數(shù)據(jù)庫信息的功能。 2.1.2視圖(View) 視圖是應(yīng)用程序中用戶界面相關(guān)的局部,是用戶看到并與之交互的界

27、面。一個(gè)視圖通常是一個(gè)網(wǎng)頁,但是在 CI中,一個(gè)視圖也可以是一個(gè)頁面片段,如頁頭、頁尾。 2.1.3控制器(Controller) 控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對象狀態(tài)。是模型、視圖以及其它任何處理 HTTP 請求所必須的資源之間的中介,并生成網(wǎng)頁。 由于運(yùn)用MVC的應(yīng)用程序的三個(gè)部件是相互對立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想你能構(gòu)造良好的松耦合的構(gòu)件。 本系統(tǒng)是在MVC模式根底上來進(jìn)展分層,由于本系統(tǒng)開發(fā)的工具是Eclipse,在建立工程時(shí)開發(fā)工具就已經(jīng)初步把系統(tǒng)分成MVC三層構(gòu)造。模型層由Models層來充當(dāng),該層主要是用來存實(shí)體B

28、ean類和Hibernate影射文件。通過該層開發(fā)者很方便地對整個(gè)工程下的Bean進(jìn)展管理,同時(shí)也非常方便地對Hibernate配置文件進(jìn)展影射,極大的提高了開發(fā)的效率,同時(shí)對以后系統(tǒng)的維護(hù)也非常方便。V層在本系統(tǒng)中主要是用來數(shù)據(jù)展示,本系統(tǒng)中V層主要是采用JSP技術(shù)。通過JSP技術(shù)可以很方便地把數(shù)據(jù)展示在web瀏覽器上。在JSP技術(shù)根底上,對其進(jìn)展了改良,把html語言和java語言進(jìn)展別離,這樣既到達(dá)了解耦的目的,也使后續(xù)系統(tǒng)的維護(hù)變得很方便。把流程控制都放到Action層,把業(yè)務(wù)邏輯處理放在service層中,充分利用Struts2技術(shù),在html頁面中使用Struts2標(biāo)簽來展示數(shù)據(jù),

29、盡量減少在html頁面上寫java語句。 C層主要是用來做流程和邏輯控制,也是整個(gè)系統(tǒng)的核心層。所有進(jìn)出系統(tǒng)的訪問都要經(jīng)過這一層的控制。本系統(tǒng)對C層時(shí)行了一些改良,本系統(tǒng)把控制層又細(xì)分為Action層,service層和Dao層。Action層只管流程控制,Service層只管邏輯控制,Dao層只管與數(shù)據(jù)打交道,各施其職,每個(gè)層次只管自己的事情,這樣能使整個(gè)系統(tǒng)的層次非常清楚,不會(huì)出現(xiàn)功能的混淆。讓開發(fā)者和維護(hù)者在編寫代碼的時(shí)候非常清晰。MVC模型優(yōu)點(diǎn)顯然,但在實(shí)際開發(fā)過程中個(gè)人對采用MVC模式有一點(diǎn)點(diǎn)看法。馬克思主義哲學(xué)告訴我們,任何事物都有它的局限性,MVC也不例外。MVC不是萬能藥,它并

30、不能醫(yī)治所有的疾病,作為一名醫(yī)術(shù)高超的醫(yī)生應(yīng)該要能對癥下藥。MVC強(qiáng)制性地將業(yè)務(wù)邏輯層和表現(xiàn)層分開,在一定程度上是能很好地松耦合,但這種做法是會(huì)帶來開發(fā)和運(yùn)行的開銷的。首先MVC采用多分層構(gòu)造,這樣就給開發(fā)帶來了難度,增加了開發(fā)的時(shí)間,并且如果在層次設(shè)計(jì)的時(shí)候設(shè)計(jì)得不好,反而會(huì)降低程序運(yùn)行的效率。另外多層次構(gòu)造在運(yùn)行的時(shí)間沒有單層次構(gòu)造的程序運(yùn)行的速度快,采用MVC模式如果分層太多,是會(huì)降低程序運(yùn)行速度??鬃痈嬖V我們要因材施教,我們做開發(fā)的也要因物施用,大炮有大炮的威力,小步槍有小步槍的靈活,并不是說所有的系統(tǒng)都要采用MVC模式來開發(fā)。MVC模式它提出來的初衷就是為大型軟件設(shè)計(jì)而提出的,它對那

31、些需要經(jīng)常復(fù)用,擴(kuò)展的大型軟件是非常有好處,但對于那些復(fù)用性,擴(kuò)展性很少的小軟件,特別是對于開發(fā)時(shí)間要求比擬緊的情況下,采用MVC模式,其實(shí)不是一種明智的選擇。2.2SSH分析SSH即Struts+Spring+Hibernate,是典型的J2EE三層構(gòu)造,分為表現(xiàn)層、中間層和數(shù)據(jù)訪問層。三層體系將數(shù)據(jù)表現(xiàn)、業(yè)務(wù)邏輯和數(shù)據(jù)訪問分開。業(yè)務(wù)邏輯、數(shù)據(jù)訪問、權(quán)限攔截及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫打交道。2.2.1Struts2框架:1 Struts2體系構(gòu)造:Struts2是一個(gè)具有很好實(shí)用價(jià)值的Web MVC框架,它減少

32、了直接運(yùn)用MVC模式來開發(fā)Web應(yīng)用的周期。重要的是它是一個(gè)開源框架,方便開發(fā)者深入研究了解其機(jī)制,越來越廣泛的承受和應(yīng)用。而且它提供一個(gè)好的控制器和一套定制的標(biāo)簽庫Taglib,著力在控制器和視圖上的應(yīng)用,完美的表達(dá)了MVC設(shè)計(jì)思想。提供集中統(tǒng)一的權(quán)限控制、國際化提示和消息、輸入校驗(yàn)和日志記錄等技術(shù)支持。另外,它對其他技術(shù)和框架具有良好的融合性。如能與E、JDBC和Hibernate等數(shù)據(jù)庫訪問技術(shù)相結(jié)合,利用集成技術(shù)減少數(shù)據(jù)庫的工作量。Struts2的體系構(gòu)造如圖2.1 (注:該圖來自于struts2官方參考文檔)所示:圖2.1Struts2的體系構(gòu)造2 Struts2核心實(shí)現(xiàn):Strut

33、s2主要是用來控制整個(gè)系統(tǒng)流程。它由三個(gè)局部組成,核心控制器FilterDispatcher、業(yè)務(wù)控制器和用戶實(shí)現(xiàn)的業(yè)務(wù)邏輯組件。本系統(tǒng)采用的核心控制器為版本,該控制器作為一個(gè)Filter運(yùn)行在Web應(yīng)用中,它負(fù)責(zé)攔截所有的用戶請求,當(dāng)用戶請求到達(dá)時(shí),該Filter會(huì)過濾用戶請求。如果用戶請求以action結(jié)尾,該請求將被轉(zhuǎn)入Struts 2框架處理。Struts 2框架獲得了*.action請求后,將根據(jù)*.action請求的前面局部決定調(diào)用哪個(gè)業(yè)務(wù)邏輯組件,例如,對于login.action請求,Struts 2調(diào)用名為login的Action來處理該請求。 struts2 struts2

34、 /* 攔截器也是本系統(tǒng)中使用的一個(gè)Struts2重要組件功能,該組件功能提供一個(gè)事件攔截的方法,讓你可以對*些動(dòng)作進(jìn)展攔截。例如本系統(tǒng)對所有后臺(tái)操作都有一個(gè)檢查是否登錄的功能,如果沒有登錄則對其操作進(jìn)展攔截。public class PrivilegeInterceptor e*tends MethodFilterInterceptorOverrideprotected String doIntercept(ActionInvocation actionInvocation) throws E*ception / 獲得Session中存的后臺(tái)的用戶:AdminUser adminE*istU

35、ser = (AdminUser) ServletActionConte*t.getRequest().getSession().getAttribute(adminE*istUser);if(adminE*istUser = null)/ 沒有登錄:ActionSupport support = (ActionSupport) actionInvocation.getAction();support.addActionError(您還沒有登錄!請先去登錄!);return support.LOGIN;else/ 已經(jīng)登錄return actionInvocation.invoke();2.2

36、.2Hibernate框架:1. ORM(對象關(guān)系數(shù)據(jù)庫映射):對象關(guān)系映射(Object Relational Mapping,簡稱ORM)是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。它完成了面向?qū)ο蟮木幊陶Z言到關(guān)系型數(shù)據(jù)庫的映射。ORM框架可以看成應(yīng)用程序和數(shù)據(jù)庫之間的橋梁,通過它,我們可以以面向?qū)ο蟮姆绞浇?、操作,易用、易理解,同時(shí)也可以利用關(guān)系型數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)庫訪問操作的一些優(yōu)勢。以面向?qū)ο蟮姆绞讲僮鞒志没瘜ο螅鳲RM框架負(fù)責(zé)轉(zhuǎn)換成對應(yīng)的SQL(構(gòu)造化查詢語言)操作。2.Hibernate概述:Hibernate是輕量級Java EE應(yīng)用的持久層解決方案,是流行

37、的ORM框架,它對JDBC進(jìn)展了非常輕量級的對象封裝,使得Java程序員可以面向?qū)ο蟮姆绞絹聿倏v數(shù)據(jù)庫。Hibernate不僅管理Java類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的操作,可以減少人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間。3.Hibernate體系構(gòu)造:Hibernate實(shí)際上是一個(gè)提供數(shù)據(jù)庫效勞的中間件。Hibernate的持久化解決方案將用戶從繁瑣的JDBC訪問中解脫出來,底層數(shù)據(jù)庫連接獲取,數(shù)據(jù)訪問的實(shí)現(xiàn)、事務(wù)控制都無須用戶關(guān)心,這種體系構(gòu)造,將應(yīng)用層從底層的JDBCJTA API中抽象出來。Hibernate體系構(gòu)造如圖2.2(注:該圖來自于Hibernate官方參考文

38、檔)所示:圖2.2 Hibernate體系構(gòu)造Hibernate有5個(gè)核心的接口、類,如下:(1)SessionFactory接口:它是單個(gè)數(shù)據(jù)庫映射關(guān)系經(jīng)過編譯后的存鏡像。所以,SessionFactory的初始化過程比擬復(fù)雜,同時(shí)也消耗大量的資源。為了解決這個(gè)問題,Hibernate的設(shè)計(jì)人員對Hibernate采用了線程平安可以并發(fā)調(diào)用,實(shí)現(xiàn)SessionFactory的實(shí)例,多個(gè)線程可以并發(fā)調(diào)用,實(shí)現(xiàn)Hibernate實(shí)例共享。此外,它還是生成Session的工廠。(2)Session接口:應(yīng)用程序與持久儲(chǔ)存層之間交互操作的一個(gè)單線程對象。Session接口對象實(shí)例中提供了持久化操作相

39、關(guān)的增、刪、查、改(CRUD)方面的操作。所有的持久化操作都是在Session的根底上完成的。通常將每一個(gè)Session對象實(shí)例和一個(gè)數(shù)據(jù)庫事務(wù)綁定。(3)事務(wù)Transaction接口:通過Transaction接口來到達(dá)允許應(yīng)用系統(tǒng)通過一組一致的事務(wù)API來控制事務(wù)邊界,從而可以封裝系統(tǒng)底層的事務(wù)操作和訪問的接口。將應(yīng)用系統(tǒng)中涉及事務(wù)功能實(shí)現(xiàn)代碼從底層的事務(wù)具體實(shí)現(xiàn)的技術(shù)細(xì)節(jié)中抽象出來,最終可以到達(dá)應(yīng)用系統(tǒng)在不同的運(yùn)行環(huán)境平臺(tái)和Java EE容器之間方便的移植。(4)Query接口:Query接口能讓開發(fā)者方便的對數(shù)據(jù)庫表中的數(shù)據(jù)及與之對應(yīng)的持久化對象進(jìn)展查詢操作,利用它可以以面向?qū)ο蟮姆?/p>

40、式來實(shí)現(xiàn)對數(shù)據(jù)庫的各種查詢操作。(5)Configuration:通過Configuration獲取目前的配置(如數(shù)據(jù)源、數(shù)據(jù)庫的URL、連接用戶名及密碼、數(shù)據(jù)庫方言等)并將這些配置加載到存中,并預(yù)啟動(dòng)Hibernate框架,最終到達(dá)創(chuàng)立SessionFactory對象的目的。2.2.3Spring框架:1.Spring框架介紹:Spring是從實(shí)際開發(fā)中抽取出來的開源框架,為企業(yè)的開發(fā)提供一個(gè)輕量級的解決方案。該解決方案包括:基于Ioc(控制反轉(zhuǎn))的核心機(jī)制,以及AOP(面向切面編程)的思想,能與多種持久層技術(shù)的整合,是優(yōu)秀的Web MVC框架等。Spring致力于Java EE應(yīng)用各層的解

41、決方案而不是僅僅專注于*一層的方案,它貫穿表現(xiàn)層、業(yè)務(wù)層、持久層,降低各層組件的耦合度,實(shí)現(xiàn)軟件各層的解耦.輕量級:劃分一個(gè)應(yīng)用是否屬于輕量級還是重量級,主要看它使用了多少效勞,使用的效勞越多,容器要為普通java對象做的工作就越多,必然會(huì)影響到應(yīng)用的發(fā)布時(shí)間或者是運(yùn)行性能。對于Spring容器,它提供了很多效勞,但這些效勞默認(rèn)是關(guān)閉的,應(yīng)用對需要的效勞可以現(xiàn)用現(xiàn)拿。而且,Spring是無侵入性的可擴(kuò)展框架,Spring應(yīng)用中的對象不依賴Spring具體的類。Ioc(控制反轉(zhuǎn)):所謂的控制反轉(zhuǎn)就是應(yīng)用本身不負(fù)責(zé)依賴對象的創(chuàng)立及維護(hù),依賴對象的創(chuàng)立及維護(hù)是由外部容器負(fù)責(zé)的。這樣控制權(quán)就由應(yīng)用轉(zhuǎn)移

42、到了外部容器,控制權(quán)的轉(zhuǎn)移就是所謂反轉(zhuǎn)。AOP(面向切面編程):AOP(Aspect Orient Programming),即面向方面編程。AOP技術(shù)給人們提供了一個(gè)嶄新的視角分析和設(shè)計(jì)軟件系統(tǒng)。AOP引入了別離關(guān)注點(diǎn)形成模塊化的機(jī)制來解決橫切關(guān)注點(diǎn)的問題。所謂的關(guān)注點(diǎn)指的是一個(gè)特定的概念、目標(biāo)或可實(shí)現(xiàn)域。系統(tǒng)正是由一組關(guān)注點(diǎn)組成,典型的軟件系統(tǒng)由多個(gè)系統(tǒng)級關(guān)注點(diǎn)和核心級關(guān)注點(diǎn)組成。核心關(guān)注點(diǎn)指業(yè)務(wù)處理的主要過程,而系統(tǒng)級關(guān)注點(diǎn)是與核心業(yè)務(wù)無關(guān),一般橫切多個(gè)核心關(guān)注點(diǎn),為這些核心關(guān)注點(diǎn)提供效勞,如日志記錄,平安檢測、事務(wù)處理等。AOP和OOP互為補(bǔ)充,從兩種不同的角度去認(rèn)識(shí)事物。傳統(tǒng)的OOP

43、4lJ編程是以對象為核心,系統(tǒng)由一系列相互依賴的對象組成,抽象的封裝好這些對象的屬性和行為,使得這些對象可以相互協(xié)作的完成特定的業(yè)務(wù)邏輯,從而完成一個(gè)完整的應(yīng)用系統(tǒng)。但隨著軟件系統(tǒng)的不斷擴(kuò)大,系列化分工越來越細(xì),對跨越多個(gè)模塊的行為進(jìn)展建模是,OOP暴露出了一些無法很好解決的問題。OOP的核心是采用的縱向構(gòu)造去完成業(yè)務(wù)邏輯(也可理解為關(guān)注點(diǎn)),很多不同模塊可能具有一樣的關(guān)注點(diǎn)(橫切關(guān)注點(diǎn)),OOP處理起來較為繁瑣,模塊間的耦合度大,后期維護(hù)和擴(kuò)展比擬困難。AOP的核心是允許我們獨(dú)立的完成一個(gè)個(gè)關(guān)注點(diǎn),然后以一種松耦合的方式把這些單獨(dú)的關(guān)注點(diǎn)編織成一個(gè)完整的系統(tǒng),形成了一種模塊化橫切關(guān)注點(diǎn)的方式

44、。與OOP相對,AOP采用的是橫向構(gòu)造,例如,多個(gè)模塊具有*個(gè)一樣操作,這個(gè)操作就可以視為系統(tǒng)中的一個(gè)橫切關(guān)注點(diǎn)。簡單地說,AOP就是將那些與業(yè)務(wù)無關(guān),卻為業(yè)務(wù)處理模塊共同效勞的諸如并發(fā)訪問控制的一些系統(tǒng)關(guān)注點(diǎn)(通用的功能需求),從不相關(guān)的的類之間別離出來,在*個(gè)地方集中編寫,組織和維護(hù),并可以通過如AspectJ等工具將它們織入到系統(tǒng)出供業(yè)務(wù)對象使用。這是系統(tǒng)建模中抽象層次的進(jìn)一步提升,可以得到構(gòu)造清晰、模塊化強(qiáng)、代碼問耦合度低、易于重用和維護(hù)的系統(tǒng)。2.Spring體系構(gòu)造:Spring是一個(gè)非常優(yōu)秀的web輕量級框架,它能夠和其他框架進(jìn)展整合,對工程中的其它框架進(jìn)展解耦和,實(shí)現(xiàn)非常便利的

45、熱插拔編程功能,Spring 由Rod Johnson 創(chuàng)立,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)立的。Spring 使用根本的JavaBean 來完成以前只可能由E 完成的事情。然而,Spring 的用途不僅限于效勞器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java 應(yīng)用都可以從Spring 中受益;Spring體系構(gòu)造如圖2.3(改圖來至Spring官方API)所示:圖2.3 Spring體系構(gòu)造Spring框架由7個(gè)定義良好的模塊(組件)組成,各個(gè)模塊可以獨(dú)立存在,也可以聯(lián)合使用。(1)Spring Core:核心容器提供了Spring的根本功能。核心容器的核心功能是用Ioc

46、容器來管理類的依賴關(guān)系Spring采用的模式是調(diào)用者不理會(huì)被調(diào)用者的實(shí)例的創(chuàng)立,由Spring容器負(fù)責(zé)被調(diào)用者實(shí)例的創(chuàng)立和維護(hù),需要時(shí)注入給調(diào)用者。這是目前最優(yōu)秀的解耦模式。(2)Spring AOP:Spring的AOP模塊提供了面向切面編程的支持。SpringAOP采用的是純Java實(shí)現(xiàn)。Spring AOP采用基于代理的AOP實(shí)現(xiàn)方案,AOP代理由Ioc容器負(fù)責(zé)生成、管理,依賴關(guān)系也一并由Ioc容器管理,盡管如此,Spring Ioc容器并不依賴于AOP,這樣我們可以自由選擇是否使用AOP。(3)Spring ORM:提供了與多個(gè)第三方持久層框架的良好整合。(4)Spring DAO:

47、Spring進(jìn)一步簡化DAO開發(fā)步驟,能以一致的方式使用數(shù)據(jù)庫訪問技術(shù),用統(tǒng)一的方式調(diào)用事務(wù)管理,防止具體的實(shí)現(xiàn)侵入業(yè)務(wù)邏輯層的代碼中。(5)Spring Conte*t:它是一個(gè)配置文件,為Spring提供上下文信息,提供了框架式的對象訪問方法。Conte*t為Spring提供了一些效勞支持,如對國際化(i18n)、電子、校驗(yàn)和調(diào)度功能。(6)Spring Web:提供了根底的針對Web開發(fā)的集成特性,例如多方文件上傳,利用Servlet listeners進(jìn)展IoC容器初始化和針對Web的applicationConte*t.(7)Spring MVC:提供了Web應(yīng)用的MVC實(shí)現(xiàn)。Spr

48、ing的MVC框架并不是僅僅提供一種傳統(tǒng)的實(shí)現(xiàn),它提供了一種清晰的別離模型,在領(lǐng)域模型代碼和web form之間。并且,還可以借助Spring框架的其他特性。2.3 SSH的整合本章的前局部,已經(jīng)分析了解了輕量級JAVA EE分層的設(shè)計(jì)模式,在Java界多種優(yōu)秀框架在對應(yīng)層找到了自己的位置。如表示層有:Struts、WebWork、Velocity、JSF、Tapestry等。持久層有:Hibernate、Entity E、iBATIS、TopLink、O等;將各層的開源框架有機(jī)的整合在一起作為軟件系統(tǒng)的主體架構(gòu),使得系統(tǒng)具各高度的可擴(kuò)展性、可維護(hù)性。在各種整合的方案中,struts+hibe

49、rnate+spring已成為JAVAEE應(yīng)用開發(fā)的主流體系。2.3.1Spring整合HibernateSpring以其開放性,能與大局部ORM框架良好的整合這樣Spring就能輕松地使用ORM。Spring提供了DAO支持,DA0組件是應(yīng)用的持久層訪問的重要組件,本系統(tǒng)把主要精力集中在數(shù)據(jù)的管理口上。此外,Spring還提供了一致的異常抽象,不需要在編碼時(shí)顯示的捕獲各種特定的異常。通過Bibernate進(jìn)展數(shù)據(jù)持久層操作時(shí),Hibernate的Session接口提供了根本的數(shù)據(jù)訪問方法,獲得Hibernate Session對象方法是要實(shí)現(xiàn)Hibernate的SessionFactory接

50、口,SessionFactory接口極為重要,它是單個(gè)數(shù)據(jù)庫映射關(guān)系編譯后的存鏡像,負(fù)責(zé)翻開、關(guān)閉和管理Session。Hibernate訪問時(shí),需要手動(dòng)創(chuàng)立SessionFactory實(shí)例,這是繁瑣的工作,我們希望能以聲明式的方式管理SessionFactory實(shí)例。Spring的loc容器提供了這種方式,通過配置文件的配置管理SessionFactory實(shí)例,使用Spring管理Session對象,使用Spring實(shí)現(xiàn)聲明式的事務(wù)管理。下面是Spring對Hibernate的整合時(shí)的關(guān)鍵步驟。在Spring的配置文件ApplicationConte*t*ml中配置Hibernate對Ses

51、sionFactory的設(shè)置。如下面的例如代碼。org.hibernate.dialect.MySQLDialecttruetrueupdate/itcast/shop/user/vo/User.hbm.*ml當(dāng)Spring的IoC容器配置了SessionFactory Bean,它隨應(yīng)用的部署啟動(dòng)而加載,可以利用Spring依賴注入特性將該Bean注入其它Bean。由配置文件還可以看出,以聲明式的方式管理SessionFactory時(shí),可以讓應(yīng)用在不同數(shù)據(jù)源間切換,一旦持久層效勞發(fā)生改變,程序代碼不需要改動(dòng),只需修改配置文件即可,使得系統(tǒng)的可維護(hù)性加強(qiáng)。2、使用Spring中的Hiberna

52、teDaosupport和HibernateTemplate類簡化Hibernate DAO實(shí)現(xiàn)類的編寫,完成數(shù)據(jù)持久化的操作。3、通過Spring的事務(wù)機(jī)制進(jìn)展統(tǒng)一的事務(wù)管理。Spring可以采用編程式和聲明式兩類事務(wù)管理。聲明式的事務(wù)管理更靈活??梢栽赟pring中使用注解式的聲明式事務(wù)管理:2.3.2Spring整合Struts2Spring也提供了MVC模式的支持,但Struts是比擬單純的MVC框架,開發(fā)中更傾向Spring和Struts整合開發(fā)。Struts和Spring的整合比擬簡單順暢。整合關(guān)鍵點(diǎn)是:將Struts中的Action的實(shí)例生成不再由Struts負(fù)責(zé),而交給Spri

53、ng容器管理,主要目的是讓控制器與業(yè)務(wù)邏輯組件實(shí)現(xiàn)別離。基于該目的,本系統(tǒng)采用工廠模式策略,讓Spring容器管理Action,利用IoC的依賴注入特性為控制器注入業(yè)務(wù)邏輯組件。Struts只單純扮演控制器的角色。下面是Spring和Struts整合的關(guān)鍵步驟。Struts的核心控制器必須能裝載Spring的應(yīng)用程序環(huán)境。Spring和Struts整合有兩種方式Struts2的Action由Struts2框架自身創(chuàng)立.Struts2的Action交給Spring框架創(chuàng)立.本系統(tǒng)推薦使用第二種方式,因?yàn)榈诙N方式,Action類由Spring容器進(jìn)展管理,可以方便的對Action類進(jìn)展AOP的編

54、程.但第二種有一個(gè)關(guān)鍵地方:就是在Struts2框架創(chuàng)立Action類的時(shí)候,默認(rèn)是多例的.而Spring容器在管理類的時(shí)候,默認(rèn)創(chuàng)立是單例的.單例的這種方式就容易產(chǎn)生線程平安問題.所以一定要配置類的scope屬性.在Spring的配置文件中:在Struts的配置文件中:2.3.3Struts2、Hibernate和Spring的整合開發(fā)將兩組整合放在一起進(jìn)展開發(fā),就可以進(jìn)展三者的組合開發(fā)。在進(jìn)展三者整合開發(fā)時(shí),一般可以采取由上往下和由下往上的分層開發(fā)的原則,多數(shù)實(shí)際工程開發(fā),往往采用后者的開發(fā)模式,即:(1)從底層開發(fā),先開發(fā)領(lǐng)域?qū)ο螅匆恍?shí)體類,這些領(lǐng)域?qū)ο髸?huì)在各層之間進(jìn)展傳遞,利用Hi

55、bernate做好領(lǐng)域?qū)ο蠛蛿?shù)據(jù)庫表的映射關(guān)系。(2)DAO層的開發(fā)。它是專門獨(dú)立出來對數(shù)據(jù)進(jìn)展持久化,即處理數(shù)據(jù)的CRUD操作,也是利用Spring對Hibernate提供的DAO支持類HibernateDaoSupport來實(shí)現(xiàn)的。每個(gè)DAO組件對應(yīng)一個(gè)數(shù)據(jù)庫表。(3)Service層的開發(fā)。這層主要是具體業(yè)務(wù)組件開發(fā),主要用于處理各類業(yè)務(wù)邏輯,并且能隔離事務(wù)和對其他資源調(diào)度。(4)Action層開發(fā)。主要是處理Web請求,由Spring進(jìn)展管理。2.4前臺(tái)分頁方法改良目前java世界里分頁方法有很多,針對不同的用途分頁也不同,所采用的分頁原理也不一樣。有些分頁方法是一次性把所有數(shù)據(jù)都查詢

56、出來,然后再根據(jù)當(dāng)前的ID號(hào)來確定要顯示哪一頁,此種方法是能實(shí)現(xiàn)數(shù)據(jù)分頁,但是每次取數(shù)據(jù)都要把所有的數(shù)據(jù)都查詢出來,這樣做不利于提高查詢的速度。有些分頁方法則是根據(jù)當(dāng)前頁的首ID和尾ID號(hào)來確定上一頁和下一頁的容,每次點(diǎn)擊上一頁或下一頁都去數(shù)據(jù)庫把相應(yīng)的數(shù)據(jù)查詢出來,這種做法是提高了查詢的速度,但是每次查詢都要訪問數(shù)據(jù)庫,增加了數(shù)據(jù)庫效勞器的負(fù)擔(dān),運(yùn)行效率不高。本系統(tǒng)前臺(tái)采用的分頁方法原理是,第一次查詢時(shí)把所有要查詢的數(shù)據(jù)都從數(shù)據(jù)庫里查詢出來,然后把這些數(shù)據(jù)放到一個(gè)session中緩存起來,以后再查詢時(shí)就從session緩存中去取需要的數(shù)據(jù),這種做法的優(yōu)點(diǎn)在于,只訪問一次數(shù)據(jù)庫減少了對數(shù)據(jù)庫效

57、勞器的負(fù)擔(dān),把數(shù)據(jù)緩存在本地,每次查詢速度比去直接訪問數(shù)據(jù)庫查詢要快得多。采用此種分頁方法既減少于數(shù)據(jù)庫的訪問,又提高了數(shù)據(jù)查詢速度,可謂是一舉兩得。2.5數(shù)據(jù)庫設(shè)計(jì)本系統(tǒng)采用的數(shù)據(jù)庫為Mysql5.0,本系統(tǒng)所有與數(shù)據(jù)庫相關(guān)的開發(fā)都遵從Mysql5.0數(shù)據(jù)庫開發(fā)原則。本系統(tǒng)數(shù)據(jù)庫開發(fā)定義名詞如下: *:主關(guān)鍵字符號(hào); PK:主關(guān)鍵字縮寫;+:外關(guān)鍵字符號(hào); FK:外關(guān)鍵字縮寫; &:復(fù)合關(guān)鍵字符號(hào); CPK:復(fù)合關(guān)鍵字縮寫; UNIQUE:唯一索引;各數(shù)據(jù)表描述:數(shù)據(jù)表描述adminuser后臺(tái)管理員表category一級分類表categorysecond二級分類表orderitem訂單項(xiàng)表

58、orders訂單表product商品表user前臺(tái)用戶表2.5.1系統(tǒng)ER圖如圖2-4所示(該由uml建模工具judy繪制):圖2-4 系統(tǒng)ER圖2.5.2 數(shù)據(jù)庫字典表名:adminuser解釋:后臺(tái)管理員表ADMINUSER(adminuser)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值備注是uid管理員編號(hào)INT(11)11username管理員名VARCHAR(50)50是password管理員密碼VARCHAR(30)20是表名:category解釋:一級分類表CATEGORY(category)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值備注是cid一級分類編號(hào)INT(1

59、1)11ame一級分類名VARCHAR(50)50是表名:categorysecond解釋:二級分類表CATEGORYSECOND(categorysecond)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值備注是csid二級分類編號(hào)INT(11)11csname二級分類名VARCHAR(50)50是cid一級分類編號(hào)INT(11)11外鍵表名:orders解釋:訂單表 ORDERS(orders)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值備注是oid訂單編號(hào)INT(11)11total訂單總金額DOUBLE0是ordertime訂單時(shí)間datetime20是state訂單狀態(tài)INT(

60、11)11是name收貨人名VARCHAR(20)20是phone收貨人VARCHAR(20)20是addr收貨人地址VARCHAR(50)50是uid用戶編號(hào)INT(11)11外鍵表名:orderitem解釋:訂單項(xiàng)表ORDERITEM(orderitem)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值備注是itemid訂單項(xiàng)編號(hào)INT(11)11count數(shù)量INT(11)11是subtotal小計(jì)DOUBLE0是pid商品編號(hào)INT(11)11外鍵oid訂單編號(hào)INT(11)11外鍵表名:product解釋:商品表ADMIN(admin)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值

溫馨提示

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

評論

0/150

提交評論