基于SSI框架的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(共53頁)_第1頁
基于SSI框架的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(共53頁)_第2頁
基于SSI框架的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(共53頁)_第3頁
基于SSI框架的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(共53頁)_第4頁
基于SSI框架的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(共53頁)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、邵陽學(xué)院畢業(yè)設(shè)計(jì)(論文)- PAGE 50 -畢業(yè)設(shè)計(jì)(b y sh j)(論文)課 題 名 稱基于SSI框架的網(wǎng)上購物(u w)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 生 姓 名 學(xué) 號(hào) 系、年級(jí)(ninj)專業(yè) 指 導(dǎo) 教 師 職 稱 年 月 日 摘要(zhiyo) 該網(wǎng)上購物系統(tǒng)屬于電子商務(wù)平臺(tái)的一種,它根據(jù)現(xiàn)有比較流行的網(wǎng)上購物系統(tǒng)和互聯(lián)網(wǎng)技術(shù)與B2C(Business to Consumers) 模式開發(fā)設(shè)計(jì)而成。使用該系統(tǒng),除了能夠提高市場競爭力,擴(kuò)大商家規(guī)模外,對(duì)于(duy)降低經(jīng)營成本,提高工作效率也是非常有利的。 該論文通過現(xiàn)有的網(wǎng)上購物系統(tǒng)情況及開發(fā)背景(bijng)進(jìn)行說明介紹,從而引出在

2、當(dāng)前形勢下對(duì)該系統(tǒng)的設(shè)計(jì)需求,并根據(jù)這些設(shè)計(jì)需求確定了相應(yīng)的設(shè)計(jì)目標(biāo)與總體設(shè)計(jì)方案,接著具體敘述了該系統(tǒng)的詳細(xì)設(shè)計(jì)過程與實(shí)現(xiàn)方法,最后進(jìn)行系統(tǒng)檢測并對(duì)需要改進(jìn)的地方進(jìn)行了描述。 該系統(tǒng)基于現(xiàn)在比較流行的MVC設(shè)計(jì)模式,主要分為了兩個(gè)大模塊:前臺(tái)模塊和后臺(tái)模塊。前臺(tái)模塊由用戶注冊登錄、新聞動(dòng)態(tài)、留言簿、商品信息展示、商品放入購物車以及商品結(jié)算等幾大模塊構(gòu)成,后臺(tái)模塊則由用戶信息管理、商品信息管理、訂單管理等子模塊構(gòu)成。 該系統(tǒng)采用Struts2+Spring3.0+IBatis2.3三大框架集成開發(fā)。使用JSP技術(shù)進(jìn)行動(dòng)態(tài)頁面的設(shè)計(jì),采用HTML+JavaScript+CSS+AJAX等前端技術(shù)

3、,后臺(tái)數(shù)據(jù)庫選用Oracle 11g數(shù)據(jù)庫。為了提高系統(tǒng)的安全性能,增強(qiáng)代碼的重復(fù)使用性,故選用程序的關(guān)鍵代碼的封裝采用JavaBean組件技術(shù)實(shí)現(xiàn)。關(guān)鍵字:Struts2;Spring2.5;IBatis2.3;JavaBean;JSP;Oracle 11gABSTRACTThissystemisbasedonmvcdesignmode,majoringattwomodules:foregroundandbackground.Theforegroundmainlyincludesmoduleofmembershipregistration,newsandtrends,guestbook,co

4、mmodityinformationdisplay,selectgoodsintotheshoppingcartandsettleaccounts;thebackgroundhasmainlyprovideduserswiththefollowingfunctions:customerinformationmanagement,commodityinformationmanagement,ordermanagementandsoon.ThissystemisadoptedbythreeintegrateddevelopmentofStruts2+Spring3.0+IBatis2.3,usin

5、gJSPtechnologyindynamicpagedesign,takingfront-endtechnologylikeHTML+JavaScript+CSS+AJAX,choosingOracle11gasthedatabaseofbackground,consideringfromthesecurityandreusingcodeofthesystem,keycodeshasbeensecuredbyJavaBeantechnology.Keywords:Struts2;Spring2.5;IBatis2.3;JavaBean;JSP;Oracle 11g目錄(ml) HYPERLI

6、NK l _Toc416875892 摘要(zhiyo) PAGEREF _Toc416875892 h ITOC o 1-3 h u HYPERLINK l _Toc29641 ABSTRACT PAGEREF _Toc416875893 h 錯(cuò)誤(cuw)!未定義書簽。 HYPERLINK l _Toc4027 1 網(wǎng)上購物系統(tǒng)緒論 PAGEREF _Toc4027 1 HYPERLINK l _Toc20336 1.1 系統(tǒng)開發(fā)背景 PAGEREF _Toc20336 1 HYPERLINK l _Toc32067 1.2 系統(tǒng)實(shí)現(xiàn)的目標(biāo) PAGEREF _Toc32067 2 HYPE

7、RLINK l _Toc16296 1.3 系統(tǒng)的開發(fā)意義 PAGEREF _Toc16296 2 HYPERLINK l _Toc21726 1.4 系統(tǒng)開發(fā)平臺(tái)與工具 PAGEREF _Toc21726 3 HYPERLINK l _Toc32193 1.5 系統(tǒng)的開發(fā)技術(shù)及主要架構(gòu) PAGEREF _Toc32193 4 HYPERLINK l _Toc4217 2 系統(tǒng)分析 PAGEREF _Toc4217 10 HYPERLINK l _Toc7005 2.1 網(wǎng)上購物系統(tǒng)概述 PAGEREF _Toc7005 10 HYPERLINK l _Toc12282 2.2 網(wǎng)上購物系統(tǒng)的

8、可行性分析 PAGEREF _Toc12282 10 HYPERLINK l _Toc5878 2.3 網(wǎng)上購物系統(tǒng)需求分析 PAGEREF _Toc5878 11 HYPERLINK l _Toc25954 3 系統(tǒng)概要設(shè)計(jì) PAGEREF _Toc25954 13 HYPERLINK l _Toc11088 3.1 項(xiàng)目規(guī)劃 PAGEREF _Toc11088 13 HYPERLINK l _Toc17928 3.2 系統(tǒng)結(jié)構(gòu)圖 PAGEREF _Toc17928 13 HYPERLINK l _Toc21159 3.3 系統(tǒng)流程分析 PAGEREF _Toc21159 14 HYPERL

9、INK l _Toc25351 4 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc25351 16 HYPERLINK l _Toc12558 4.1 數(shù)據(jù)庫設(shè)計(jì)的重要性 PAGEREF _Toc12558 16 HYPERLINK l _Toc32742 4.2 數(shù)據(jù)庫設(shè)計(jì)規(guī)范 PAGEREF _Toc32742 16 HYPERLINK l _Toc2311 4.3 數(shù)據(jù)庫字典 PAGEREF _Toc2311 17 HYPERLINK l _Toc27483 5 系統(tǒng)詳細(xì)設(shè)計(jì) PAGEREF _Toc27483 22 HYPERLINK l _Toc28453 5.1 開發(fā)規(guī)范 PAGEREF

10、 _Toc28453 22 HYPERLINK l _Toc14242 5.2 系統(tǒng)框架說明 PAGEREF _Toc14242 23 HYPERLINK l _Toc15936 6 系統(tǒng)測試及難點(diǎn)分析 PAGEREF _Toc15936 30 HYPERLINK l _Toc22064 6.1 系統(tǒng)測試 PAGEREF _Toc22064 30 HYPERLINK l _Toc15267 6.2 系統(tǒng)運(yùn)行結(jié)果 PAGEREF _Toc15267 32 HYPERLINK l _Toc29118 6.3 系統(tǒng)中所存在的問題及解決方案 PAGEREF _Toc29118 41 HYPERLINK

11、 l _Toc8862 參考文獻(xiàn) PAGEREF _Toc8862 45 HYPERLINK l _Toc30177 致謝 PAGEREF _Toc30177 461 網(wǎng)上購物(u w)系統(tǒng)緒論1.1 系統(tǒng)開發(fā)(kif)背景1.1.1網(wǎng)上購物(u w)的發(fā)展 最近的幾年,Internet的迅猛發(fā)展使得互聯(lián)網(wǎng)日漸成為了信息收集與提供的佼佼者,并逐步成為了一種傳統(tǒng)的流通渠道。在互聯(lián)網(wǎng)的帶動(dòng)下,電子商務(wù)開始進(jìn)入人們的視野,網(wǎng)上商店開始流行起來。 網(wǎng)上購物系統(tǒng)作為一種企業(yè)對(duì)企業(yè)(B2B),企業(yè)對(duì)消費(fèi)者(B2C),消費(fèi)者對(duì)消費(fèi)者(C2C)的電子商務(wù)前端商務(wù)平臺(tái),對(duì)其商務(wù)活動(dòng)有著非常重要的作用。本文主要對(duì)

12、建設(shè)B2C網(wǎng)上購物系統(tǒng)進(jìn)行討論。 網(wǎng)上購物系統(tǒng)是一種商業(yè)信息系統(tǒng),這個(gè)系統(tǒng)中包含了動(dòng)態(tài)與靜態(tài)兩大信息資源,其中動(dòng)態(tài)信息資源是指像培訓(xùn)信息、會(huì)議安排及商品報(bào)價(jià)之類的時(shí)刻變化的信息,而靜態(tài)信息資源則是指像公司簡介、公司制度及公司管理等不經(jīng)常更新變化的信息。該系統(tǒng)在交互功能方面表現(xiàn)突出,商家與用戶之間通過該系統(tǒng)能夠更為簡便地傳遞信息,完成EDI交易及電子貿(mào)易,讓企業(yè)之間文件與資金無紙化交換成為了現(xiàn)實(shí)。1.1.2網(wǎng)上購物系統(tǒng)的現(xiàn)狀 就現(xiàn)在而言,在中國最普遍使用的是PHP與ASP技術(shù),JSP作為一種較為新穎的技術(shù),雖然在國外,特別是國外的電子商務(wù)類網(wǎng)站中的應(yīng)用已較為廣泛,但在國內(nèi),它的應(yīng)用領(lǐng)域依舊較小。

13、 PHP技術(shù)由于自身存在的一些缺陷,比如規(guī)模支持與多層結(jié)構(gòu)支持,使得它更適用于一些小型的商業(yè)網(wǎng)站,如新浪、中國人等,在大型的電子商務(wù)網(wǎng)站中使用,它的缺陷就會(huì)暴露無疑。加之PHP沒有統(tǒng)一的數(shù)據(jù)庫接口支持,導(dǎo)致它在電子商務(wù)中并不適用。但PHP技術(shù)缺少這類支持,并且PHP沒有統(tǒng)一的數(shù)據(jù)庫接口支持,導(dǎo)致它在電子商務(wù)中并不適用。 ASP技術(shù)不但能夠取得ActiveX規(guī)模支持,而且能夠取得結(jié)構(gòu)支持,JSP技術(shù)與ASP一樣,也能夠獲取規(guī)模支持與結(jié)構(gòu)支持。 當(dāng)今世界,JSP/Servlet受到許多大型電子商務(wù)解決方案提供商的喜愛。例如較為有名(yu mng)的IBM的E-business與西方的另一個(gè)廣為人知

14、的電子商務(wù)軟件提供商Intershop,它們的核心分別選用的是JSP/Servlet的WebSphere與JSP/Servlet。其中,Intershop之前的產(chǎn)品Intershop1 2, 3, 4在電子商務(wù)軟件占據(jù)了市場的主要份額,雖然這些產(chǎn)品采用的是CGI來進(jìn)行支持的,但在那之后,Intershop又推出了一個(gè)應(yīng)用JSP/Servlet的電子商務(wù)應(yīng)用服務(wù)Enfinity,并聲稱再也不開發(fā)傳統(tǒng)軟件。由此觀之,以上(yshng)三種技術(shù),將來最大為發(fā)展應(yīng)當(dāng)非JSP莫屬。綜上所述,JSP、PHP、ASP三者各有千秋,每個(gè)技術(shù)都有一定數(shù)量數(shù)量的支持者和反對(duì)者,因此我們在開發(fā)實(shí)際應(yīng)用時(shí)應(yīng)當(dāng)從實(shí)際情

15、況考慮,選擇(xunz)一個(gè)最適合當(dāng)前項(xiàng)目的技術(shù)。本文中系統(tǒng)選用的是較為新穎的JSP技術(shù),原因如下:一是JSP技術(shù)的安全性與跨平臺(tái)性較好,二是希望能夠從設(shè)計(jì)這個(gè)系統(tǒng)的過程當(dāng)中,對(duì)這門編程語言得到更深入的了解。1.2系統(tǒng)實(shí)現(xiàn)的目標(biāo)眼下流行的網(wǎng)上購物系統(tǒng)大多都是外觀與內(nèi)在同時(shí)兼?zhèn)涞南到y(tǒng),既有美麗的頁面布局,更有嚴(yán)謹(jǐn)?shù)囊?guī)劃設(shè)計(jì),對(duì)每一個(gè)細(xì)微的環(huán)節(jié)都不放過。只有這樣,在電子交易環(huán)節(jié)中才避免發(fā)生錯(cuò)誤。傳統(tǒng)管理信息系統(tǒng)的信息獲取依靠的是專業(yè)人員在管理系統(tǒng)的數(shù)據(jù)庫中進(jìn)行信息的錄入來完成的,當(dāng)信息量較小的時(shí)候,這種方法可以應(yīng)用在許多場合。但是,一旦數(shù)據(jù)量較大,且專業(yè)性較強(qiáng)時(shí),使用這種錄入方法所需費(fèi)用以及從錄入

16、的出錯(cuò)率都會(huì)相應(yīng)上升。在本設(shè)計(jì)中,采用jsp實(shí)現(xiàn)動(dòng)態(tài)頁面,ibatis與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的交互,struts2充當(dāng)控制層,連接頁面和數(shù)據(jù)庫,并處理相關(guān)的業(yè)務(wù),spring主要用于提供依賴注入、數(shù)據(jù)源和事務(wù)管理。通過以上技術(shù)的有機(jī)結(jié)合,可以給用戶帶來一個(gè)交互性良好,安全穩(wěn)定的網(wǎng)上購物系統(tǒng),同時(shí)也利于后期維護(hù)和升級(jí)。1.3系統(tǒng)的開發(fā)意義 互聯(lián)網(wǎng)為傳統(tǒng)的商業(yè)運(yùn)作在技術(shù)上提供了一種可行性方案,使得傳統(tǒng)的商業(yè)運(yùn)作模式隨著互聯(lián)網(wǎng)的發(fā)展有所改變?,F(xiàn)在,這種方案已經(jīng)廣泛應(yīng)用到了我們的實(shí)際生活中,也就是我們常常鎖說的:電子商務(wù)。這個(gè)方案是利用互聯(lián)網(wǎng)的技術(shù)與協(xié)議,為所有(suyu)的買家、賣家,生產(chǎn)商、合伙人建立起

17、各式各樣的企業(yè)內(nèi)部網(wǎng)與企業(yè)外部網(wǎng),通過采用廉價(jià)通信方法將大家緊密地聯(lián)系在了一起,讓空間和時(shí)間不再是阻隔相互聯(lián)系交易的障礙,從而極大地降低交易的成本,擴(kuò)大交易的范圍。 我們經(jīng)常上的淘寶網(wǎng)與當(dāng)當(dāng)網(wǎng)就是現(xiàn)在比較流行的兩個(gè)網(wǎng)上購物系統(tǒng),二者均是非常出色(chs)的電子商務(wù)網(wǎng)站,同時(shí)也是其他網(wǎng)站學(xué)習(xí)的優(yōu)秀典范。所以,在設(shè)計(jì)系統(tǒng)中,我們不妨參考他們的思想,這將有助于我們對(duì)電子商務(wù)網(wǎng)站的開發(fā)設(shè)計(jì)、整個(gè)網(wǎng)站應(yīng)有的系統(tǒng)功能和注意事項(xiàng)得到更深入的認(rèn)識(shí)與了解。電子商務(wù)網(wǎng)站的設(shè)計(jì)和完成需要涉及到很多技術(shù)層面上的問題,所以在設(shè)計(jì)中,我們應(yīng)該避免(bmin)紙上談兵,通過在實(shí)踐操作中來掌握相關(guān)技術(shù),如:后臺(tái)數(shù)據(jù)庫與動(dòng)態(tài)網(wǎng)

18、頁制作的設(shè)計(jì)及管理的使用。1.4 系統(tǒng)開發(fā)平臺(tái)與工具1.4.1 操作系統(tǒng)平臺(tái)Windows7 該系統(tǒng)開發(fā)平臺(tái)采用由微軟公司(Microsoft)開發(fā)的操作系統(tǒng)Windows7 旗艦版64位,處理器Intel(R) Core(TM) i3-2350M CPU 2.30GHz 2.30GHz,安裝內(nèi)存10.0GB。1.4.2項(xiàng)目開發(fā)工具M(jìn)yEclipse本系統(tǒng)采用的項(xiàng)目開發(fā)工具是MyEclipse企業(yè)級(jí)工作平臺(tái)(簡稱MyEclipes),它是對(duì)EclipseIDE的擴(kuò)展,不但具有完整的編碼、調(diào)試、測試與發(fā)布功能,而且能夠完全支持HTML,Javascript,JSP,Spring,SQL及Hibe

19、rnate等,是一個(gè)功能豐富的JavaEE集成開發(fā)環(huán)境。該平臺(tái)不僅有利于數(shù)據(jù)庫與JavaEE的開發(fā)、發(fā)布,在應(yīng)用程序服務(wù)器的整合方面也非常合適,使用它能夠大幅度地提高我們的工作效率。由于MyEclipse功能的強(qiáng)大與支持的廣泛,使得它特別適用于各類開源產(chǎn)品的支持,可以說,MyEclipse幾乎囊括了現(xiàn)今全部的主流開源產(chǎn)品的開發(fā),因此,對(duì)于Java,J2EE的開發(fā)而言,MyEclipse是一個(gè)非常出色的Eclipse插件集合。1.4.3項(xiàng)目管理工具(gngj)Maven Maven被定義為一個(gè)項(xiàng)目管理工具,它的組成比較復(fù)雜,包括一個(gè)項(xiàng)目對(duì)象模型(Project Object Model),一組標(biāo)

20、準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),以及用來運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。Maven在使用(shyng)過程中,如果用一個(gè)明確定義的項(xiàng)目對(duì)象模型來描述項(xiàng)目,有一組共享的插件,作為Maven應(yīng)用的橫切的邏輯。 如果運(yùn)行mvn install這條指令時(shí),將會(huì)調(diào)用Maven的生命周期,Maven會(huì)有序的執(zhí)行下去直至指定的生命周期。在遍歷的過程中,Maven會(huì)運(yùn)行默認(rèn)的插件目標(biāo),這些目標(biāo)將會(huì)實(shí)現(xiàn)類似一個(gè)JAR文件的編譯和創(chuàng)建的工作。除此之外,項(xiàng)目報(bào)告不僅(bjn)能通過maven進(jìn)行方便

21、的管理,還可以生成站點(diǎn),管理JAR文件等。 1.4.4版本控制工具GitGit是由Linus Torvalds開發(fā)的一款供用戶無償使用的開源分布式版本控制系統(tǒng),它能夠高速有效地處理各種各樣,或大或小的項(xiàng)目版本管理。在項(xiàng)目中使用Git,不僅有助于項(xiàng)目的團(tuán)隊(duì)開發(fā)和提高開發(fā)效率,而且能夠精確地控制項(xiàng)目的版本,開發(fā)人員每次Git服務(wù)器獲取最新的項(xiàng)目代碼,完成相應(yīng)模塊地開發(fā)后,再提交的Git服務(wù)器上,并附上本次提交內(nèi)容的相關(guān)信息,如果出問題,可以回滾之前的版本。當(dāng)然,如果當(dāng)前版本在使用,我們可以新建分支,繼續(xù)開發(fā),等開發(fā)完成之后,再合并到主分支,這樣既不影響當(dāng)前版本的使用,也可以繼續(xù)開發(fā)任務(wù)。1.4.5

22、服務(wù)器Tomcat服務(wù)器Tomcat屬于輕量級(jí)應(yīng)用服務(wù)器,常使用于中小型系統(tǒng)與并發(fā)訪問用戶較少的場合中。它是一個(gè)供用戶無償使用的開源web應(yīng)用服務(wù)器,也是人們開發(fā)、調(diào)試JSP程序時(shí)的第一選擇。對(duì)于初學(xué)者而言,我們不妨這么理解,如果將Apache服務(wù)器配備在一臺(tái)機(jī)器上,那么對(duì)于HTML頁面的訪問請(qǐng)求可通過它來進(jìn)行響應(yīng)。實(shí)際上,Tomcat部分是Apache服務(wù)器的擴(kuò)展,但由于它的獨(dú)立運(yùn)行,因此tomcat在運(yùn)行時(shí)是作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)來運(yùn)行的。1.4.6前端調(diào)試(dio sh)工具FireBugFirebug是基于firefox下的一個(gè)擴(kuò)展,可以調(diào)試如html,css等所有網(wǎng)站的

23、語言。此外,F(xiàn)irebug還能夠進(jìn)行(jnxng)html,css,dom的查看和調(diào)試,網(wǎng)站的整體分析等等,功能非常強(qiáng)大。其中,最令人稱贊的當(dāng)屬它的javascript調(diào)試功能,它可以運(yùn)用于各種瀏覽器中(如IE,firefox,Safari等),并且使用十分簡便。總的來說,F(xiàn)irebug就是一套完整、強(qiáng)大的開源web開發(fā)軟件。1.4.7 數(shù)據(jù)庫Oracle 11gOracle 11g是一種功能比較全面并且穩(wěn)定的關(guān)系型數(shù)據(jù)庫,其大大小小的功能就多達(dá)四百余種。其性能(xngnng)較于舊版本更為優(yōu)越,不僅具有優(yōu)良的伸展性與可用性,且更為安全。即使在低成本的服務(wù)器與存儲(chǔ)設(shè)備構(gòu)成的網(wǎng)格上也能方便地運(yùn)行

24、。而且還擁有自己一套sql標(biāo)準(zhǔn)。1.5 系統(tǒng)的開發(fā)技術(shù)及主要架構(gòu)1.5.1開發(fā)技術(shù)的選擇 (1)JSP一個(gè)合理的開發(fā)技術(shù)是一個(gè)網(wǎng)站是否能夠開發(fā)完成的重要基礎(chǔ),選擇合理的開發(fā)技術(shù)能夠使網(wǎng)站的開發(fā)事半功倍。因此,我們首先需要一個(gè)合適的動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù)來進(jìn)行網(wǎng)站的設(shè)計(jì)。當(dāng)前,ASP、PHP、JSP這三種動(dòng)態(tài)網(wǎng)頁技術(shù)較為流行。三者各自特性如表3.1所示。表3.1 asp/jsp/php比較表技術(shù)名稱ASPJSPPHP對(duì)數(shù)據(jù)庫的支持好好好開發(fā)難易度容易容易較難使用平臺(tái)Windows9X/NTWindows/UNIXUNIX安全性不好好不好對(duì)組件的支持支持支持不支持執(zhí)行方式解釋執(zhí)行編譯之后執(zhí)行解釋執(zhí)行跨平

25、臺(tái)不好好好雖然這三者技術(shù)都是通過傳統(tǒng)的HTML代碼里的HTML標(biāo)簽來擴(kuò)展組成頁面的,但從表3.1而言,可以明顯得知,各方面表現(xiàn)(bioxin)最好的是JSP技術(shù)。特別是在跨平臺(tái)性與安全性上,JSP技術(shù)相對(duì)于另外兩種技術(shù)要好得多,所以,經(jīng)過比較,我們決定使用給予Java的JSP技術(shù)來進(jìn)行動(dòng)態(tài)網(wǎng)頁的開發(fā)。struts2struts2 是在以前的Webwork和XWork框架基礎(chǔ)(jch)上改進(jìn)而成的一個(gè)Java Web開源框架,同時(shí)也是一個(gè)以POJO的Action為基礎(chǔ)的MVC Web框架,它繼承了Webwork和XWork框架的優(yōu)良性能,功能十分強(qiáng)大?,F(xiàn)在的struts2在Java Web開發(fā)界

26、中具有不可撼動(dòng)的地位,之所以該框架如此深得人心,在開發(fā)人員看來,這與其優(yōu)良的設(shè)計(jì)是分不開的。struts2的優(yōu)點(diǎn)(yudin):基于MVC架構(gòu)的設(shè)計(jì),使得struts2具有清晰明了的框架結(jié)構(gòu)及開發(fā)流程,采用struts2進(jìn)行開發(fā),能夠很好地開發(fā)過程。利用OGNL傳遞參數(shù):OGNL提供了一個(gè)簡單的方法用于在struts2中進(jìn)行各類作用域里的數(shù)據(jù)訪問,通過這種方法來獲取Request,Attribute,Application,Session,Parameters里的數(shù)據(jù)會(huì)十分方便。大大簡化了開發(fā)過程中取得這些數(shù)據(jù)時(shí)所需的代碼量。struts2的攔截器:struts2具有的很多功能都是依靠攔截器來

27、完成的,比如上傳文件、處理異常和驗(yàn)證等。它的攔截器是一個(gè)Action級(jí)別的AOP,能夠進(jìn)行配置與重復(fù)使用,如果把類似登錄驗(yàn)證,權(quán)限驗(yàn)證這樣的一些通用功能加入到攔截起中,就可以實(shí)現(xiàn)一些Java Web項(xiàng)目里表位通用的功能。測試的方便:由于struts2的Action均為簡單的POJO,所以用它來進(jìn)行用例的編寫測試非常方便,極大地簡化了Java Web項(xiàng)目的測試。模塊化:模塊化是struts2體系架構(gòu)的基本思想。其它優(yōu)點(diǎn):在應(yīng)用程序中添加全局結(jié)果,以及為配置文件的異常進(jìn)行處理,這樣一來,當(dāng)處理過程當(dāng)中,發(fā)生了指定異常時(shí),即可跳至特定頁面。這一功能十分實(shí)用。ibatisibatis相比Hiberna

28、te和Apache OJB之類的一站式”O(jiān)RM解決方案來說,它是一種“半自動(dòng)化”的ORM實(shí)現(xiàn)。何為“半自動(dòng)”?也許在理解上會(huì)有些生澀。其實(shí),我們這里所說的“半自動(dòng)化”是相對(duì)于目前主流的“全自動(dòng)化”O(jiān)RM而言的。“全自動(dòng)”O(jiān)RM不僅能夠提供POJO與數(shù)據(jù)庫表之間的映射,還可以自動(dòng)生成和執(zhí)行SQL,例如Hibernate與Apache OJB,它們擁有POJO到數(shù)據(jù)庫表的全套映射機(jī)智,并且對(duì)數(shù)據(jù)庫結(jié)構(gòu)的封裝也比較完整。通常程序員只用對(duì)POJO到數(shù)據(jù)庫表的映射關(guān)系做好定義,就能夠利用OJB或Hibernate提供的方法實(shí)現(xiàn)對(duì)持久層的操作。甚至于都不要求程序員能熟練地掌握SQL都可以完成這些操作,因?yàn)?/p>

29、OJB、Hibernate可以依據(jù)設(shè)定的存儲(chǔ)邏輯,自動(dòng)生成并通過調(diào)用DBC接口執(zhí)行對(duì)應(yīng)的SQL。而對(duì)于ibatis來說,它比較注重于POJO與SOL間的映射關(guān)系,換而言之,就是說在運(yùn)行期間,Ibatis不會(huì)自動(dòng)生成、執(zhí)行SQL。它需要程序員對(duì)具體的SQL進(jìn)行編程,接著將SQL所需的參數(shù)與返回的結(jié)果字段利用映射配置文件映射到制定的POJO?!叭詣?dòng)”的ORM機(jī)制(jzh)(如Hibernate)與“半自動(dòng)”的ORM機(jī)制(jzh)(如ibatis)當(dāng)對(duì)象是純粹的Java時(shí),于業(yè)務(wù)邏輯實(shí)現(xiàn)人員來說,它們二者是基本一致的。只有在進(jìn)行具體的數(shù)據(jù)操作時(shí),“全自動(dòng)”的ORM會(huì)自動(dòng)(zdng)生成、執(zhí)行SQL

30、語句,而“半自動(dòng)”的ORM則需要對(duì)具體的SQL語句進(jìn)行編寫。相對(duì)于“全自動(dòng)”的ORM機(jī)制來說,ibatis這種“半自動(dòng)”的ORM機(jī)制,是“全自動(dòng)”O(jiān)RM機(jī)制的一種有利補(bǔ)充,它通過在開發(fā)SQL工作量與數(shù)據(jù)庫移植性上的讓步,擴(kuò)大了系統(tǒng)設(shè)計(jì)的自由空間。它的出現(xiàn)具有非常重要的意義。springspring是由我們平時(shí)常使用的JavaBean構(gòu)成的一個(gè)輕量級(jí)容器,它不同于EJB容器,其核心思想是IoC與AOP,所以spring不僅易于編寫,并且能夠不用依賴容器就進(jìn)行單元測試。此外,Spring支持所有的Java Bean組件與聲明式事務(wù)的管理,因此,如果使用spring,它將負(fù)責(zé)對(duì)Java Bean組件

31、進(jìn)行初始化及管理,那么我們只需將Java Bean組件進(jìn)行編寫、“裝配”即可。這個(gè)方式最大的優(yōu)勢在于松散的組件耦合,讓我們無需自己動(dòng)手便可實(shí)現(xiàn)singleton模式。1.5.2系統(tǒng)的主要架構(gòu)及開發(fā)模式系統(tǒng)使用的架構(gòu)是系統(tǒng)建設(shè)的關(guān)鍵所在,傳統(tǒng)的c/s架構(gòu)現(xiàn)已不能滿足類似網(wǎng)上購物這樣基于web并具有大量用戶訪問和操作系統(tǒng)的需要,因此以瀏覽器架構(gòu)為基礎(chǔ)的b/s架構(gòu)成為了當(dāng)前網(wǎng)絡(luò)系統(tǒng)應(yīng)用的主要架構(gòu),它利用服務(wù)器端對(duì)大批的數(shù)據(jù)工作進(jìn)行處理,客戶端只需使用普通的IE瀏覽器便能夠訪問系統(tǒng)。這樣一來,訪問系統(tǒng)不僅變得方便快捷,并且更有利于對(duì)系統(tǒng)進(jìn)行更新維護(hù)。除此之外,由于j2ee規(guī)范的誕生,采用java語言使

32、得該系統(tǒng)的開發(fā)更具規(guī)范,層次更為明了,在對(duì)復(fù)雜事物的處理以及安全性方面也表現(xiàn)得更為出色。而以mvc為基礎(chǔ)的開發(fā)流程不但使得開發(fā)過程更為清晰,同時(shí)在完成一些復(fù)雜的邏輯實(shí)現(xiàn)上也更為簡便,從而減少了開發(fā)的成本與周期。在B/S體系架構(gòu)系統(tǒng)中,我們只需配備少量的客戶端軟件在客戶機(jī)上即可。因?yàn)樵摷軜?gòu)減輕了客戶機(jī)的原有工作,利用服務(wù)器來擔(dān)負(fù)起客戶機(jī)所減輕部分的工作,如:訪問(fngwn)數(shù)據(jù)庫與執(zhí)行應(yīng)用程序等。至于剩下數(shù)據(jù)的請(qǐng)求與加工,結(jié)果的返回,動(dòng)態(tài)網(wǎng)頁的生成等工作則是依靠webserver來完成的。換句話來說,如果將二層的C/S架構(gòu)中的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)里分離出來得到的就是B/S體系架構(gòu)。

33、Browse瀏覽器Web服務(wù)器數(shù)據(jù)庫圖3.1 B/S三層架構(gòu)(ji u)示意圖 B/S三層體系架構(gòu)如圖3.1所示。它通過web服務(wù)器建立起獨(dú)立的一層來負(fù)責(zé)其任務(wù)(rn wu),將負(fù)荷分配給了web服務(wù)器,以減輕客戶機(jī)的壓力。 B/S體系架構(gòu)不但能滿足不斷提高的性能要求,并且還將客戶機(jī)從沉重的負(fù)擔(dān)中解脫了出來,也使技術(shù)維護(hù)人員在繁重的維護(hù)升級(jí)工作中得到了解放,技術(shù)維護(hù)人員不再需要為了維護(hù)程序而在在每個(gè)客戶機(jī)之間奔波忙碌,他們可以把主要精力用在功能服務(wù)器的程序更新工作上,因?yàn)楣δ芊?wù)器幫助客戶機(jī)分擔(dān)了事務(wù)處理邏輯部分的功能,使客戶機(jī)變得“苗條”起來。并且這種三層架構(gòu)層與層之間是互相獨(dú)立的,改變?nèi)魏?/p>

34、一層都不會(huì)對(duì)其它層的功能造成影響。 ASP,CGI是傳統(tǒng)的基于web的應(yīng)用系統(tǒng),像這類系統(tǒng),開發(fā)者通常會(huì)將數(shù)據(jù)邏輯、展示邏輯與業(yè)務(wù)邏輯等混雜起來,將后臺(tái)數(shù)據(jù)庫的訪問、操作,以及業(yè)務(wù)的流程與頁面的表示都放在同一個(gè)界面中表示。這樣一來編寫的程序,不僅不利于編輯人員設(shè)計(jì)交互頁面,當(dāng)程序員需要對(duì)業(yè)務(wù)代碼調(diào)試時(shí)也會(huì)十分麻煩。并且這樣的系統(tǒng)完全無擴(kuò)展性可言,一旦我們要擴(kuò)展現(xiàn)有的業(yè)務(wù),通常情況下只能重新進(jìn)行編寫,因?yàn)橄到y(tǒng)無法借助現(xiàn)有的資源與應(yīng)用,所以使用這樣的系統(tǒng)導(dǎo)致了投資的大量增加,系統(tǒng)上線時(shí)間的延長,在市場競爭中失去了優(yōu)勢。 而本文所設(shè)計(jì)的網(wǎng)上購物系統(tǒng),使用了通行的MVC模式來構(gòu)造應(yīng)用,有效(yuxio

35、)地解決了上述的所有問題。在我們的應(yīng)用集成網(wǎng)絡(luò)中,MVC的開發(fā)模型將通過企業(yè)級(jí)高端J2EE應(yīng)用服務(wù)器實(shí)現(xiàn)。它的邏輯圖如圖3.2所示: 圖3.2應(yīng)用服務(wù)器之上采用MVC開發(fā)(kif)的邏輯示意圖 使用這個(gè)方案,我們能夠快速(kui s)地完成整個(gè)業(yè)務(wù)。其優(yōu)點(diǎn)與特性如下: (1)模型(Model)層:采用javabean實(shí)現(xiàn),具體的業(yè)務(wù)封裝service層中,具有高性能、可重用、安全可靠等優(yōu)勢。 (2)視圖(View)層:該層由JSP構(gòu)成,它的特點(diǎn)在于可以真實(shí)地展現(xiàn)與客戶交互的界面,可以嵌套動(dòng)態(tài)數(shù)據(jù)并展示動(dòng)態(tài)頁面,同時(shí)還具有描繪功能,能夠依據(jù)不同客戶的要求來展示不同風(fēng)格的界面,方便地個(gè)性化定制客戶

36、端。 (3)控制器(Controller)層:用于最大限度地分離視圖層與模型層,同時(shí)也這兩層的連接紐帶,具有非常重要的地位。它一般是由是struts2實(shí)現(xiàn)的,它的優(yōu)點(diǎn)在于業(yè)務(wù)的調(diào)用和流程的處理。建立這種模型,可以使該應(yīng)用系統(tǒng)性能更為優(yōu)越,且可擴(kuò)展性更好。通過控制器來描述調(diào)用關(guān)系,同時(shí)分離業(yè)務(wù)組件與展示頁面,不但能夠提高工作效率,而且能夠增強(qiáng)系統(tǒng)的擴(kuò)充能力,使系統(tǒng)能夠以最快的速度擴(kuò)展業(yè)務(wù),滿足各種用戶在不同階段各式各樣的業(yè)務(wù)需求。2 系統(tǒng)分析2.1 網(wǎng)上購物(u w)系統(tǒng)概述(i sh) 在平臺(tái)的開發(fā)設(shè)計(jì)中,系統(tǒng)分析是一個(gè)不可或缺的環(huán)節(jié)。為了使系統(tǒng)的設(shè)計(jì)能夠更好、更完善,我們首先要進(jìn)行(jnxn

37、g)研究和學(xué)習(xí),然后基于對(duì)系統(tǒng)的調(diào)查研究之上,再細(xì)致地分析新系統(tǒng)的功能,從而開發(fā)設(shè)計(jì)出一個(gè)完整的新系統(tǒng)。本購物系統(tǒng)分為前臺(tái)(qinti)管理系統(tǒng)與后臺(tái)管理系統(tǒng),前臺(tái)管理系統(tǒng)具有會(huì)員(huyun)注冊及登錄、產(chǎn)品分類、產(chǎn)品展示、產(chǎn)品信息檢索、購物車、個(gè)人中心、新聞動(dòng)態(tài)等功能,是一個(gè)友好(yuho)的操作界面,提供給用戶進(jìn)行商品的查詢與瀏覽;后臺(tái)管理系統(tǒng)則是供管理員使用的,它具有用戶管理、商品信息、訂單管理、銷量信息、建議管理、新聞管理等功能,使管理員擺脫了傳統(tǒng)繁雜的手工操作,大大提升了工作效率。2.2 網(wǎng)上購物系統(tǒng)的可行性分析 豐富多彩的網(wǎng)絡(luò)世界,日益劇增的網(wǎng)絡(luò)人口,飛速發(fā)展的計(jì)算機(jī)技術(shù),這些都

38、讓電子商務(wù)在網(wǎng)上掀起了一股熱潮。我們相信,在不久的將來,客戶將能夠在網(wǎng)絡(luò)世界中得到所有他們在現(xiàn)實(shí)世界中得到的全部商品與服務(wù)。 為了確定該系統(tǒng)開發(fā)的項(xiàng)目是否值得研究且能夠?qū)崿F(xiàn),我們需要進(jìn)行可行性研究,同時(shí)通過可行性研究還可以極大得簡化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過程,所以這項(xiàng)研究是非常重要且必要的。由系統(tǒng)的設(shè)計(jì)目標(biāo)與對(duì)市場的調(diào)研可得到經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行可行性和法律可行性四項(xiàng)可行性分析: (1)經(jīng)濟(jì)可行性:由于該系統(tǒng)設(shè)計(jì)只是作為本人的畢業(yè)設(shè)計(jì),在設(shè)計(jì)能力、設(shè)計(jì)資金及設(shè)計(jì)時(shí)間上有所局限,所以其功能并未完善,暫時(shí)無什么經(jīng)濟(jì)效益可言。 (2)技術(shù)可行性:該系統(tǒng)設(shè)計(jì)采用的是spring+struts2+

39、ibatis技術(shù),該技術(shù)現(xiàn)已較為成熟,而且本人對(duì)該技術(shù)有一定掌握,而且網(wǎng)上這塊技術(shù)的資料也是比較多。 (3)運(yùn)行可行性:該系統(tǒng)在JVM(即JAVA虛擬機(jī)和Tomcat環(huán)境)下,正確連接至數(shù)據(jù)庫后能夠正常運(yùn)行。 (4)法律可行性:該系統(tǒng)為自主開發(fā)的畢業(yè)設(shè)計(jì),與商業(yè)無關(guān),不具有侵權(quán)行為,所以具備法律可行性。本文所開發(fā)設(shè)計(jì)的網(wǎng)上購物平臺(tái)系統(tǒng)應(yīng)用了Web技術(shù)與互聯(lián)網(wǎng)廣泛應(yīng)用技術(shù),實(shí)現(xiàn)了資源共享,達(dá)到了過去只有在現(xiàn)實(shí)商場中購物才能達(dá)到的效果,交互性較好,克服了購物的局限性,減短了購物的時(shí)間,提高了人們購物的效率。該系統(tǒng)成為了一個(gè)網(wǎng)絡(luò)化、規(guī)范化、信息化、系統(tǒng)化的交易平臺(tái),將繁瑣的購物活動(dòng)變得簡單易行。經(jīng)過

40、以上可行性分析(fnx),綜合考慮,確定了開發(fā)該平臺(tái)的可行性。為了讓該平臺(tái)更具實(shí)用性與適應(yīng)性,在對(duì)現(xiàn)有的平臺(tái)內(nèi)容(nirng)進(jìn)行充分了解與幾個(gè)月的調(diào)查研究后,經(jīng)過指導(dǎo)老師的耐心教導(dǎo),決定開發(fā)本系統(tǒng)平臺(tái)。2.3 網(wǎng)上購物系統(tǒng)需求(xqi)分析2.3.1 目標(biāo) 每個(gè)網(wǎng)站都具有它自己的設(shè)計(jì)規(guī)則,該平臺(tái)也不例外。它的主要設(shè)計(jì)規(guī)則是簡單性、針對(duì)性與實(shí)用性。簡單性對(duì)于一個(gè)網(wǎng)站而言,是十分重要的。何謂簡單性?就是在能夠?qū)崿F(xiàn)該平臺(tái)設(shè)計(jì)功能的基礎(chǔ)上,盡可能使平臺(tái)的操作簡單明了。針對(duì)性則是由于該平臺(tái)屬于網(wǎng)上購物系統(tǒng)與后臺(tái)管理的定向開發(fā)設(shè)計(jì),因此要求該平臺(tái)具有突出專業(yè)性及很強(qiáng)的針對(duì)性。而實(shí)用性說的是該平臺(tái)可以實(shí)現(xiàn)

41、電子商品的展示及管理員對(duì)基本信息的管理,所以具有良好的實(shí)用性。因此,我們針對(duì)不同用戶有不同的功能:(1)普通用戶:可以通過前臺(tái)進(jìn)行頁面的瀏覽,產(chǎn)品的搜索以及產(chǎn)品信息的查看。(2)注冊用戶:除了擁有普通用戶所具備的權(quán)利外,還擁有登陸注冊、購買商品、使用購物車和提交訂單的權(quán)利。同時(shí),注冊用戶還可以向商家提出意見或建議。 (3)管理員:通過后臺(tái)管理系統(tǒng)可以對(duì)用戶信息、商品信息、訂單信息、銷量信息、建議信息及新聞信息等進(jìn)行管理。 該網(wǎng)上購物系統(tǒng)除了需要實(shí)現(xiàn)上述目標(biāo)功能外,還需要重點(diǎn)實(shí)現(xiàn)的功能有:分頁、易淘、購物車、批量刪除、圖片上傳、過濾處理及最近瀏覽等。2.3.2 具體需求 (1)前臺(tái)主要有: 用戶

42、注冊登錄(dn l):用于實(shí)現(xiàn)用戶的注冊(zhc)及登錄。產(chǎn)品(chnpn)展示:用于展示產(chǎn)品的詳細(xì)信息,使用戶能夠更加全面具體地了解產(chǎn)品。 產(chǎn)品檢索:用戶可以根據(jù)自身需要,輸入關(guān)鍵詞對(duì)所需產(chǎn)品進(jìn)行查詢,節(jié)省用戶時(shí)間,提高購買效率。 最近瀏覽:顯示當(dāng)前用戶最近的瀏覽記錄,方便用戶對(duì)之前瀏覽過的產(chǎn)品再次進(jìn)行查看。 新聞動(dòng)態(tài):用于展示最新的動(dòng)態(tài)信息,比如新品首發(fā)、優(yōu)惠活動(dòng)等信息,吸引用戶查看購買。 留言板:用戶可在此進(jìn)行留言。購物車:與商場的購物車類似,用于實(shí)現(xiàn)用戶對(duì)商品的暫時(shí)存放,方便用戶進(jìn)行選購結(jié)算。 (2)后臺(tái)主要有:用戶管理:通過該模塊可以對(duì)用戶信息進(jìn)行增刪改查操作。 商品管理:通過該模塊

43、可以對(duì)產(chǎn)品進(jìn)行增刪改查操作。訂單管理:通過該模塊可以對(duì)訂單進(jìn)行增刪改查操作。 留言板:通過該模塊可以對(duì)留言板進(jìn)行增刪改查操作。 新聞管理:通過該模塊可以對(duì)新聞進(jìn)行增刪改查操作。3 系統(tǒng)(xtng)概要(giyo)設(shè)計(jì)3.1 項(xiàng)目(xingm)規(guī)劃 根據(jù)我們的調(diào)查研究可知,該平臺(tái)設(shè)計(jì)需要完成下列幾項(xiàng)功能,具體如下所示: (1)普通用戶:搜索、瀏覽產(chǎn)品。 (2)注冊用戶:搜索、購買、瀏覽產(chǎn)品,此外還可以給商家聊天、留言、提出意見或建議。 (3)管理員:管理用戶和商品信息,具有增刪改查等權(quán)限,同時(shí)還可以上傳和下載商品圖片。需要重點(diǎn)實(shí)現(xiàn)的功能有批量刪除產(chǎn)品或用戶信息,圖片的上傳和下載,過濾處理,購物車

44、,分頁,易淘等。 3.2 系統(tǒng)結(jié)構(gòu)圖 網(wǎng)上購物系統(tǒng)是一個(gè)典型web系統(tǒng),主要分為前臺(tái)和后臺(tái)兩個(gè)部分,它們相應(yīng)的子模塊如下:圖3.1 前臺(tái)(qinti)模塊 前臺(tái)模塊主要具有:登陸(dng l)注冊、產(chǎn)品展示、查詢、購物車、新聞等子模塊。圖3.2 前臺(tái)(qinti)模塊 后天模塊主要具有:用戶管理、商品信息、訂單管理、新聞管理等子模塊。3.3 系統(tǒng)流程分析 3.3.1前臺(tái)購物流程 具體流程圖如下圖:圖3.3 前臺(tái)購物流程圖用戶首先對(duì)商品進(jìn)行瀏覽,選擇自己所心儀的商品,然后訂購商品。需要訂購商品的用戶會(huì)出現(xiàn)三種情況,一是未注冊用戶,二是已登錄注冊用戶,三是未登錄注冊用戶,這時(shí)系統(tǒng)就會(huì)對(duì)此做出判斷,

45、對(duì)于未注冊用戶,那么系統(tǒng)會(huì)先要求用戶進(jìn)行注冊,對(duì)于為登錄注冊用戶,那么系統(tǒng)會(huì)先要求用戶進(jìn)行登錄,最后才會(huì)像已登錄注冊用戶那樣去到購物車,再到收銀臺(tái),最后提交訂單結(jié)賬。3.3.1 后臺(tái)(huti)購物(u w)流程 具體(jt)流程圖如下圖:圖3.4 前臺(tái)購物流程圖 管理員通過管理員站好在前臺(tái)登陸,系統(tǒng)根據(jù)賬號(hào)的權(quán)限級(jí)別,自動(dòng)跳轉(zhuǎn)到后臺(tái)管理系統(tǒng),然后管理員可以根據(jù)自己需要進(jìn)行用戶管理、產(chǎn)品信息、訂單管理、銷量信息、新聞管理和建議管理等操作。4 系統(tǒng)(xtng)數(shù)據(jù)庫設(shè)計(jì)(shj)4.1 數(shù)據(jù)庫設(shè)計(jì)(shj)的重要性 數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用程序的重要組成部分。一個(gè)設(shè)計(jì)結(jié)構(gòu)合理的數(shù)據(jù)庫對(duì)于應(yīng)用程序的開發(fā)

46、效率和程序的性能都是非常重要的。 良好的數(shù)據(jù)庫設(shè)計(jì)對(duì)于一個(gè)高性能的應(yīng)用程序非常重要,就像一個(gè)空氣動(dòng)力裝置對(duì)于一輛賽車的重要性一樣。如果一輛汽車沒有平滑的曲線,將會(huì)產(chǎn)生阻力從而變慢。關(guān)系沒有經(jīng)過優(yōu)化,數(shù)據(jù)庫無法盡可能高效地運(yùn)行。應(yīng)該把數(shù)據(jù)庫的關(guān)系和性能看作是規(guī)范化的一部分。除了性能以外的問題,就是維護(hù)的問題了,數(shù)據(jù)庫應(yīng)該易于維護(hù)。這包括只存儲(chǔ)數(shù)量有限的(如果有的話)重復(fù)性數(shù)據(jù)。如果有很多的重復(fù)性數(shù)據(jù),并且這些數(shù)據(jù)的一個(gè)實(shí)例發(fā)生一次改變(例如,一個(gè)名字的改變),這個(gè)改變必須對(duì)所有的其他的數(shù)據(jù)都進(jìn)行。為了避免重復(fù),并且增強(qiáng)維護(hù)數(shù)據(jù)的能力,我們可以創(chuàng)建可能的值的一個(gè)表并使用一個(gè)鍵來引用該值。在這種方式

47、中,如果值改變了名字,這個(gè)改變只在主表中發(fā)生一次,所有的其他表的引用都保持不變。4.2 數(shù)據(jù)庫設(shè)計(jì)規(guī)范4.2.1 數(shù)據(jù)庫設(shè)計(jì)三大范式 數(shù)據(jù)庫的設(shè)計(jì)范式是數(shù)據(jù)庫設(shè)計(jì)所需要滿足的規(guī)范,數(shù)據(jù)庫的規(guī)范化是優(yōu)化表的結(jié)構(gòu)和優(yōu)化把數(shù)據(jù)組織到表中的方式,這樣使數(shù)據(jù)更明確,更簡潔。實(shí)踐中,通常把一個(gè)數(shù)據(jù)庫分成兩個(gè)或多個(gè)表并定義表之間的關(guān)系以做到數(shù)據(jù)隔離,添加、刪除和修改某個(gè)字段只需要在一個(gè)表中進(jìn)行,接著可以通過定義的關(guān)系傳遞到數(shù)據(jù)庫中剩余的表中(和分層思想的意義所在很相似)。這樣我們可以消除很多錯(cuò)誤或垃圾數(shù)據(jù)出現(xiàn)的機(jī)會(huì)并減輕更新信息所必要的工作量。 目前,主要有六種范式:第一范式、第二范式、第三范式、BC范式、

48、第四范式和第五范式。滿足最低要求(yoqi)的叫第一范式,簡稱1NF。在第一范式基礎(chǔ)上進(jìn)一步滿足一些要求的為第二范式,簡稱2NF。其余依此類推。 事物往往具有多面性,設(shè)計(jì)范式也會(huì)帶來一定的麻煩:操作困難,因?yàn)樾枰?lián)系多個(gè)(du )表才能得到所需要數(shù)據(jù),而且范式越高性能就會(huì)越差。所以使用多高的范式需要權(quán)衡利弊,一般在項(xiàng)目中,使用到第三范式也就足夠了,性能好而且方便管理數(shù)據(jù)。第一范式1NF,定義:數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。簡單的說,每一個(gè)屬性都是原子項(xiàng),不可分割(b k fn )。1NF是關(guān)系模式應(yīng)具備的最起碼的條件,如果數(shù)據(jù)庫設(shè)計(jì)不能滿足第一范式,就不稱為關(guān)系型數(shù)據(jù)庫。也就是說,

49、只要是關(guān)系型數(shù)據(jù)庫,就一定滿足第一范式。第二范式2NF,定義:數(shù)據(jù)庫表中不存在非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的部分函數(shù)依賴,即符合第二范式。2NF可以減少插入異常,刪除異常和修改異常。簡單的說,一方面,第二范式肯定要滿足第一范式,否則就沒有必要談第二范式。另一方面,當(dāng)某張表中的非主鍵信息不是由整個(gè)主鍵函數(shù)來決定時(shí),即存在依賴于該表中不是主鍵的部分或者依賴于主鍵一部分的部分時(shí),通常會(huì)違反2NF。(3)第三范式3NF,定義:在第二范式的基礎(chǔ)上,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對(duì)任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合3NF。4.2.2 數(shù)據(jù)庫命名規(guī)則表4.1 數(shù)據(jù)庫命名規(guī)則表 (Table)tbl_主鍵(P

50、rimary key)pk_字段(Column)無外鍵(Foreign key)fk_視圖 (View)viw_Check 約束(Check Constraint)ck_存儲(chǔ)過程 (Stored procedure)prd_Default 約束(Default Constraint)df_觸發(fā)器(Trigger)trg_用戶定義數(shù)據(jù)類型 (User-defined data type)udt_索引(Index)idx_用戶定義函數(shù) (User-defined function)fun_4.3 數(shù)據(jù)庫字典(zdin) 建設(shè)這個(gè)系統(tǒng)之前,我們必須大致將系統(tǒng)中使用的數(shù)據(jù)分類,并且對(duì)這些數(shù)據(jù)進(jìn)行具體的

51、結(jié)構(gòu)設(shè)計(jì),這是數(shù)據(jù)庫系統(tǒng)中的重中之重,它的好壞是保證關(guān)鍵數(shù)據(jù)在意外情況下是否能抵御破壞的重要因素,所以對(duì)此,我們要求做到清晰明了,不會(huì)使其產(chǎn)生(chnshng)結(jié)構(gòu)上的邏輯混亂,能夠適應(yīng)系統(tǒng)各項(xiàng)功能的調(diào)用。 數(shù)據(jù)庫的設(shè)計(jì)必須遵循一定的規(guī)則,一個(gè)好滴數(shù)據(jù)庫能夠滿足一些嚴(yán)格的閑置和要求。盡可能得將各實(shí)體對(duì)應(yīng)的表進(jìn)行分離,一個(gè)表對(duì)應(yīng)一個(gè)實(shí)體,明確什么屬性是哪些實(shí)體該具有的,什么字段是與其(yq)相對(duì)應(yīng)的,以及各個(gè)實(shí)體間的聯(lián)系是什么。實(shí)體、屬性和聯(lián)系是在概念設(shè)計(jì)時(shí)所需考慮的三要素,只有這三個(gè)要素設(shè)計(jì)好了,才能擁有一個(gè)好的數(shù)據(jù)庫。數(shù)據(jù)庫中一共建立了8個(gè)表,表名如下:表4.2 產(chǎn)品類型信息表 ( tbl_

52、producttype)序號(hào)字段代碼字段名稱類型長度約束名說明1tid編號(hào)number20pk_pid主鍵,唯一標(biāo)識(shí),自增長(從1開始)2parentid副編號(hào)number20非空3tname名字varchar2100非空5remark備注varchar2500備注表4.3 產(chǎn)品信息表 ( tbl_product)序號(hào)字段代碼字段名稱 類型長度 約束名 說明1pid產(chǎn)品編號(hào)number20pk_pid主鍵,唯一標(biāo)識(shí),自增長(從1開始)2tid類型編號(hào)number20fk_tid外鍵,引用產(chǎn)品類型表的tid列3pname名稱varchar2100非空4pvender廠家varchar2100非空

53、5pbrand品牌varchar25006pprice價(jià)格double20非空7pstock庫存number10非空8pstate狀態(tài)number2非空,1:熱賣,2:特價(jià),3:團(tuán)購價(jià)4:普通9ppic圖片路徑varchar2500非空10pdescribe描述varchar2500描述產(chǎn)品信息,非空11pbarcode條形碼varchar215非空12remark備注varchar2500備注表4.4 用戶(yngh)信息表 ( tbl_users)序號(hào)字段代碼 字段名 類型 長度 約束名 說明1uuid用戶編號(hào)number20pk_uid主鍵,唯一標(biāo)識(shí)自增長(從1開始)2utruename

54、真實(shí)姓名varchar250非空3uname用戶名varchar2100非空4upwd密碼varchar220非空5unickname昵稱varchar21006usex性別varchar22非空7ubirth出生日期date非空8ucode身份證號(hào)varchar218非空9uaddress地址varchar2500非空10uphone聯(lián)系方式varchar220非空11uauthority權(quán)限number2非空,1: 普通用戶,2: 客服, 3:管理員12uqq綁定QQvarchar220非空13unumberegral積分number1014remark備注varchar2500備注表4.

55、5 訂單明細(xì)(mn x)信息表 ( tbl_orders_detail)序號(hào) 字段代碼字段名 類型 長度約束名 說明1 ooid訂單編號(hào) number 20 pk_oid外鍵,引用訂單表的oid列2 uuid用戶編號(hào) number 20fk_uid外鍵,引用用戶表的uid列3 pname產(chǎn)品名varchar2 100非空4 tname產(chǎn)品類型varchar2100非空5 odnum數(shù)量number 10非空6 單價(jià)double 20非空7 odtotal總價(jià)double 20非空8odpreferential優(yōu)惠double 59 ostate狀態(tài)number 21:未付款,2:已付款,3:已

56、發(fā)貨,4:收貨并確認(rèn)10 odpayment付款方式varchar2 101:貨到付款,2:網(wǎng)上支付11 remark備注varchar2 500備注說明表4.6 訂單(dn dn)信息表 ( tbl_orders)序號(hào) 字段代碼 字段名 類型 長度約束名 說明1ooid編號(hào)number 20 pk_oid主鍵,唯一標(biāo)識(shí)自增長(從1開始)2uname用戶名varchar2 100fk_oid外鍵3otime訂單時(shí)間date 非空4ostate狀態(tài)number 21:未付款,2:已付款,3:已發(fā)貨,4:收貨并確認(rèn)5onum合計(jì)number 20非空6remark備注varchar2 500備注說

57、明表4.7 新聞(xnwn)信息表 ( tbl_news)序號(hào)字段代碼字段名類型長度約束名 說明1nid新聞編號(hào)number20pk_nid主鍵,唯一標(biāo)識(shí)自增長(從1開始)2ntitle標(biāo)題varchar2200非空3nsource來源varchar2200非空4nauthor作者varchar250非空5ncontent內(nèi)容varchar24000非空6ncreatetime錄入日期date 非空7remark備注varchar2500備注表4.8 建議(jiny)板信息表 ( tbl_advice )序號(hào)字段代碼 字段名類型長度約束名 說明1aid 編號(hào)number20pk_aid主鍵,唯

58、一標(biāo)識(shí)自增長(從1開始)2uname建議用戶名varchar250非空3acontent建議內(nèi)容varchar210004acreatetime建議創(chuàng)建時(shí)間date5areplytime建議回復(fù)時(shí)間date6astate建議狀態(tài)number21:已回復(fù),2:待回復(fù)7remark備注varchar2500表4.9 公告(gnggo)信息表 ( tbl_announce)序號(hào)字段代碼字段名類型長度約束名 說明1aid公告編號(hào)number20pk_aid主鍵,唯一標(biāo)識(shí)自增長(從1開始)2atitle標(biāo)題varchar2200非空3acontent內(nèi)容varchar21000非空4acreatetim

59、e錄入日期date 非空5remark備注varchar2500備注5 系統(tǒng)(xtng)詳細(xì)(xingx)設(shè)計(jì)5.1 開發(fā)(kif)規(guī)范 (1)所有頁面均采用UTF-8編碼,工程也采用UTF-8編碼。 (2)在類或者方法上寫上作者名 (3)Java中類的命名:類名:如果該類與某張表對(duì)應(yīng),則把表名的前綴去掉即該類名,并采用駝峰命名法則。例如:存在表tbl_type,則與之對(duì)應(yīng)的類名為Type。類屬性:如果該類與某張表對(duì)應(yīng),則該類的屬性名與表格中的字段名一樣,而且順序也要一致,但一定要注意類型的,如date,類屬性選擇是utils包中的。 (4)每個(gè)類和方法最后分別添加一個(gè)標(biāo)記,格式:/end類名

60、或/end方法名 (5)如果一個(gè)控制語句無法在一個(gè)窗口同時(shí)出現(xiàn),則采用以下方法注釋: 例如:if(條件) /beignOutIf if(條件(tiojin)) /beignInnerIf 處理(chl)語句 /endInnerIf /endOutIf 再如:if(條件(tiojin)) /beignIf while(條件) /beginWhile 處理語句 /endWhile /endIf (6)類中的每個(gè)屬性,采用當(dāng)行注釋,說明該屬性的含義,必須在同一行 例如:pricvate String pname;/姓名 (7)類與類之間,方法與方法之間,必須空一行 (8)類中的書寫順序:屬性構(gòu)造方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論