版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)論文 </b></p><p> 題 目: 電子商務(wù)網(wǎng)站設(shè)計(jì)</p><p> 隨著全球信息網(wǎng)絡(luò)的發(fā)展,Internet在世界上已不僅僅是一種技術(shù),更重要的是它已成為一種新的經(jīng)營模式,徹底改變了人類工作,學(xué)習(xí),生活,娛樂的方式,已成為國家經(jīng)濟(jì)和區(qū)域經(jīng)濟(jì)增長的主要?jiǎng)恿Αnternet正成為世界最大的公共資料信息庫,它包含無數(shù)的信息
2、資源,所有最新的信息都可以通過網(wǎng)絡(luò)搜索獲得。更重要的是,大部分信息都是免費(fèi)的,應(yīng)用電子商務(wù)可使企業(yè)獲得在傳統(tǒng)模式下所無法獲得的巨量商業(yè)信息,在激烈的市場競爭中領(lǐng)先對(duì)手?;ヂ?lián)網(wǎng)真是商機(jī)無限。因此,任何一個(gè)企業(yè)要在21世紀(jì)生存,就必須迅速地改變傳統(tǒng)的經(jīng)營觀念,跟上當(dāng)今世界發(fā)展的最新潮流,加入到電子商務(wù)大潮中。</p><p> 本系統(tǒng)采用SSH整合技術(shù),構(gòu)建一個(gè)簡單的網(wǎng)上購物系統(tǒng)。基本的網(wǎng)絡(luò)購物功能都能夠?qū)崿F(xiàn),也增
3、加了公告板信息的展示,后臺(tái)管理和前臺(tái)展示分離,便于管理。經(jīng)過不斷的改進(jìn)和調(diào)試,系統(tǒng)逐漸完善,最終完成了一個(gè)標(biāo)準(zhǔn)化的電子商務(wù)交易平臺(tái)。</p><p> 關(guān)鍵詞:電子商務(wù); JSP;網(wǎng)上購物</p><p><b> 目錄</b></p><p><b> 緒論1</b></p><p>
4、1、系統(tǒng)開發(fā)基本環(huán)境配置3</p><p> 1.1、Myeclipse介紹3</p><p> 1.2、Tomcat服務(wù)器3</p><p> 1.3、SQL SERVER 2008數(shù)據(jù)庫概述4</p><p> 1.4、Tomcat安裝4</p><p> 1.5、搭建過程詳解5</p&
5、gt;<p> 2、系統(tǒng)使用技術(shù)概述6</p><p> 2.1、J2EE平臺(tái)簡介6</p><p> 2.2、Struts框架技術(shù)7</p><p> 2.3、Hibernate框架技術(shù)概述8</p><p><b> 一、ORM概述8</b></p><p>
6、 二、Hibernate核心原理8</p><p> 2.4、Spring框架技術(shù)概述9</p><p> 一、Spring的初衷:9</p><p> 二、Spring的目標(biāo):9</p><p> 三、Spring的基本組成:9</p><p> 2.5、Spring框架技術(shù)詳解10</
7、p><p> 2.6、名詞解釋11</p><p> 3、需求分析與系統(tǒng)設(shè)計(jì)11</p><p> 3.1、目標(biāo)與要求11</p><p> 3.2、系統(tǒng)設(shè)計(jì)思想12</p><p> 3.3、系統(tǒng)功能模塊圖12</p><p> 一、系統(tǒng)的前臺(tái)功能模塊圖12</p&g
8、t;<p> 二、系統(tǒng)的后臺(tái)功能模塊圖13</p><p> 3.4、數(shù)據(jù)庫概念模型設(shè)計(jì)13</p><p> 4、電子商務(wù)網(wǎng)站數(shù)據(jù)庫詳細(xì)設(shè)計(jì)15</p><p> 4.1、數(shù)據(jù)庫表的設(shè)計(jì)15</p><p> 4.2、數(shù)據(jù)庫物理設(shè)計(jì)17</p><p> 5、前臺(tái)模塊設(shè)計(jì)與實(shí)現(xiàn)1
9、7</p><p> 5.1 、用戶模塊17</p><p><b> 1、用戶注冊(cè)18</b></p><p><b> 二、用戶登錄20</b></p><p> 三、用戶信息修改21</p><p><b> 四、用戶登出22</b&
10、gt;</p><p> 5.2 、主頁模塊22</p><p><b> 一、分類瀏覽23</b></p><p><b> 二、商品檢索24</b></p><p><b> 三、商城廣告26</b></p><p><b>
11、; 四、特價(jià)商品26</b></p><p><b> 五、新品上架29</b></p><p> 六、時(shí)間信息展示31</p><p> 5.3、購物車模塊31</p><p> 5.4、訂單查看模塊33</p><p> 6、后臺(tái)模塊設(shè)計(jì)與實(shí)現(xiàn)33</
12、p><p> 6.1.系統(tǒng)后臺(tái)框架設(shè)計(jì)34</p><p> 一、管理員的設(shè)計(jì)34</p><p> 二、系統(tǒng)后臺(tái)主頁面設(shè)計(jì)34</p><p><b> 三、后臺(tái)退出35</b></p><p> 6.2 會(huì)員管理35</p><p> 6.3 商品管理
13、36</p><p> 6.4訂單管理38</p><p> 6.5公告管理39</p><p> 7、系統(tǒng)問題描述40</p><p><b> 后記41</b></p><p><b> 致謝42</b></p><p>&l
14、t;b> 參考文獻(xiàn)43</b></p><p><b> 緒論</b></p><p> 隨著全球信息網(wǎng)絡(luò)的發(fā)展,Internet在世界上已不僅僅是一種技術(shù),更重要的是它已成為一種新的經(jīng)營模式,徹底改變了人類工作,學(xué)習(xí),生活,娛樂的方式,已成為國家經(jīng)濟(jì)和區(qū)域經(jīng)濟(jì)增長的主要?jiǎng)恿?。Internet正成為世界最大的公共資料信息庫,它包含無數(shù)的信息資
15、源,所有最新的信息都可以通過網(wǎng)絡(luò)搜索獲得。更重要的是,大部分信息都是免費(fèi)的,應(yīng)用電子商務(wù)可使企業(yè)獲得在傳統(tǒng)模式下所無法獲得的巨量商業(yè)信息,在激烈的市場競爭中領(lǐng)先對(duì)手。互聯(lián)網(wǎng)真是商機(jī)無限。電子商務(wù)(e-Commerce)交易的個(gè)性化、自由化可為企業(yè)創(chuàng)造無限商機(jī),降低成本,同時(shí)可以更好地建立同客戶、經(jīng)銷商及合作伙伴的關(guān)系,為此,許多公司積極拓展電子商務(wù),為客戶服務(wù),進(jìn)行價(jià)值鏈集成。</p><p> 當(dāng)今世界網(wǎng)絡(luò)、
16、通信和信息技術(shù)的發(fā)展,Internet在全球迅速普及,使得商業(yè)空間發(fā)展到全球的規(guī)模,同時(shí)也使得現(xiàn)代商業(yè)企業(yè)需要具有不間斷地供貨能力、不斷增長的客戶需求和不斷增長的全球競爭三大特征,這使得任何一個(gè)商業(yè)組織都必須調(diào)整自己的經(jīng)營方式和產(chǎn)業(yè)結(jié)構(gòu),以適應(yīng)新的市場發(fā)展的需要。隨之出現(xiàn)了日益走入我們生活的網(wǎng)上購物。</p><p> 網(wǎng)絡(luò)購物正適應(yīng)了當(dāng)今社會(huì)快節(jié)奏的生活,使顧客足不出戶便可以方便快捷輕松的選購自己喜歡的商品。
17、網(wǎng)上購物系統(tǒng)作為B2B,B2C(Business to Customer),即(企業(yè)對(duì)消費(fèi)者),C2C(Customer to Customer,即消費(fèi)者對(duì)消費(fèi)者)電子商務(wù)的前端商務(wù)平臺(tái),在其商務(wù)活動(dòng)全過程中起著舉足輕重的作用。從長遠(yuǎn)來看,企業(yè)對(duì)消費(fèi)者的電子商務(wù)將最終在電子商務(wù)領(lǐng)域占據(jù)重要地位。但是由于各種因素的治愈,目前以及比較長的一段時(shí)間內(nèi),這個(gè)層次的業(yè)務(wù)還只能占比較小的比重。它是以互聯(lián)網(wǎng)圍主要服務(wù)提供手段,實(shí)現(xiàn)公眾消費(fèi)和提供服務(wù),
18、并保證與其相關(guān)的付款方式的電子化,它是隨著萬維網(wǎng)的出現(xiàn)而迅速發(fā)展的,可以將其看作是一種電子化的零售。</p><p> 當(dāng)今歐美等發(fā)達(dá)國家電子商務(wù)發(fā)展迅速,先進(jìn)的技術(shù)服務(wù)使得他們國家的生活水平得到了更高層次的提升。中國目前也在趕上電子商務(wù)熱潮的腳步,政府也積極提倡并且支持電子商務(wù)技術(shù)的研發(fā),要跟上網(wǎng)絡(luò)時(shí)代的大潮流,電子商務(wù)的發(fā)展一定不能停滯。一個(gè)國家電子商務(wù)的發(fā)展程度可以反映出一個(gè)國家的信息技術(shù)水平和科技水平。
19、我國目前正處于持續(xù)發(fā)展中,相信在不久的未來可以涌現(xiàn)出更多像淘寶、京東等大型交易電子商務(wù)網(wǎng)站。</p><p> 作為大學(xué)中的一個(gè)計(jì)算機(jī)工程系的學(xué)生,做一個(gè)電子商務(wù)網(wǎng)站是很有必要的。通過做一個(gè)完整的畢業(yè)設(shè)計(jì),可以讓學(xué)生得到一個(gè)很好的鍛煉,可以讓學(xué)生把大學(xué)中所學(xué)的知識(shí)理論全部在這上面運(yùn)用,同時(shí)結(jié)合實(shí)踐,提高動(dòng)手能力,為以后走進(jìn)對(duì)應(yīng)的工作崗位有著非常重要的意義。</p><p> 本電子商城
20、網(wǎng)站是建立一個(gè)商品銷售平臺(tái),這個(gè)平臺(tái)是企業(yè)發(fā)展及走向全球所迫切需要的。為企業(yè)單位搭建一個(gè)商品發(fā)布、交易的平臺(tái),企業(yè)將銷售商品在此平臺(tái)發(fā)布,由網(wǎng)站相關(guān)管理人B/S結(jié)構(gòu)員管理,這樣既能提高企業(yè)的銷售量,擴(kuò)大銷售范圍,同時(shí)也能節(jié)約企業(yè)開辦更多實(shí)體店的費(fèi)用,從而節(jié)約了大量人力物力,于是本電子商務(wù)網(wǎng)站就應(yīng)運(yùn)而生了。</p><p> 1、系統(tǒng)開發(fā)基本環(huán)境配置</p><p> 本網(wǎng)站是基于J2E
21、E的開發(fā)平臺(tái)SSH(Struts+Spring+Hibernate)來進(jìn)行企業(yè)能源管理系統(tǒng)的開發(fā),該平臺(tái)客服了使用傳統(tǒng)的J2EE平臺(tái)開發(fā)系統(tǒng)時(shí)的不足,保留了三個(gè)開源框架各自的優(yōu)勢,讓它們彼此在各層次上協(xié)調(diào)工作實(shí)現(xiàn)層次直接的低耦合,大大的提高了系統(tǒng)的擴(kuò)展性和可移植性。SQL SERVER 2008 作為網(wǎng)站的后臺(tái)數(shù)據(jù)庫,方便對(duì)數(shù)據(jù)庫中的信息進(jìn)行管理。</p><p> 電子商務(wù)系統(tǒng)能夠合理利用資源,省去了中間商,
22、即為生產(chǎn)商帶來了效益,也給消費(fèi)者贏得實(shí)惠。電子商務(wù)系統(tǒng)主要包括兩個(gè)方面,前臺(tái)展示和后臺(tái)管理。</p><p> 下面主要對(duì)系統(tǒng)相關(guān)技術(shù),工具,運(yùn)行環(huán)境做簡單介紹。</p><p> 1.1、Myeclipse介紹</p><p> MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對(duì)Ec
23、lipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。</p><p> 1.2、Tomcat服務(wù)器</p><p> Tomca
24、t是一個(gè)免費(fèi)、開源的Jave Web服務(wù)器。Java Web 服務(wù)器在Java EE規(guī)范中也被稱為容器(Container),因?yàn)樗械腤eb應(yīng)用程序都需要部署到容器中運(yùn)行。Web服務(wù)器管理著Web應(yīng)用程序,并提供Web應(yīng)用程序所需的一切資源。</p><p> Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、
25、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。</p><p> 系統(tǒng)需要選擇一個(gè)成熟的java應(yīng)用服務(wù)器。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web
26、應(yīng)用服務(wù)器。本系統(tǒng)采用Apache Tomcat6.0作為應(yīng)用服務(wù)器。</p><p> 1.3、SQL SERVER 2008數(shù)據(jù)庫概述</p><p> SQL Server 2008是Microsoft公司推出的大型數(shù)據(jù)庫管理系統(tǒng),它建立在成熟而強(qiáng)大的關(guān)系型基礎(chǔ)上,可以很好的支持客戶機(jī)/服務(wù)器網(wǎng)絡(luò)模式,能夠滿足各種類型的企事業(yè)單位對(duì)構(gòu)建網(wǎng)絡(luò)數(shù)據(jù)庫的需求。它具有易用性、可擴(kuò)展性、可
27、靠性等特點(diǎn),是目前使用最為廣泛、普及率最高的數(shù)據(jù)庫管理系統(tǒng)之一。</p><p> 1.4、Tomcat安裝</p><p> Tomcat的使用分為兩個(gè)類型,一個(gè)是安裝版的像普通安裝程序一樣安裝后使用,另一種是解壓版本的,解壓后放到任意的目錄即可以使用。在該系統(tǒng)中,我采用的是解壓版本的,需要進(jìn)行環(huán)境變量的設(shè)置,和jdk安裝在一個(gè)目錄中。</p><p> 將
28、jdk的安裝文件解壓到指定的目錄中。我的jdk路徑和tomcat的路徑全部</p><p> 在D盤,具體路徑如下:Tomcat:D:\tomcat jdk:D:\jdk</p><p> 圖1.1環(huán)境變量配置</p><p> 圖1.1是對(duì)tomcat的環(huán)境變量的簡單配置。</p><p> 由于8080端口經(jīng)常會(huì)被占用,特別是在
29、裝有Oracle數(shù)據(jù)庫的機(jī)器中,在這里需要對(duì)tomcat的端口進(jìn)行修改。當(dāng)端口被占用的時(shí)候可以通過360的防火墻進(jìn)行設(shè)置,關(guān)閉占用的端口。</p><p><b> 具體操作步驟:</b></p><p> 右擊360防火強(qiáng)—>選擇查看網(wǎng)絡(luò)連接狀況,就會(huì)看到具體的端口占用狀態(tài),找到占用的端口關(guān)閉就可以了。</p><p> 為了克服
30、端口占用的情況,我在這里對(duì)端口就行了修改,具體操作過程如下:</p><p> 打開Tomcat安裝目錄下conf目錄下的server.xml文件。用查找功能找到8080修改成為9000,這樣可以避免和其它應(yīng)用程序公用9000端口。</p><p> 1.5、搭建過程詳解</p><p> 運(yùn)行環(huán)境的配置是項(xiàng)目開發(fā)的第一步,良好的開發(fā)環(huán)境對(duì)項(xiàng)目開發(fā)的成功可以起
31、到重要的做用。用一個(gè)自己屬熟悉的、先進(jìn)的開發(fā)環(huán)境、能起到事半功倍的效果。本項(xiàng)目根據(jù)"網(wǎng)上商店"的需求,集合當(dāng)前的主流開發(fā)工具,數(shù)據(jù)庫選用了SQL Server 2008,開發(fā)工具選用了MyEclipse8.5,應(yīng)用服務(wù)器(jsp容器)使用了Tomcat,這些都是目前主流的開發(fā)工具,開發(fā)效率較高,其中Tomcat是開源產(chǎn)品,可以免費(fèi)獲得,大大降低了開發(fā)成本。B/S(Browser/Server)結(jié)構(gòu)來構(gòu)建系統(tǒng)。B/S是
32、指瀏覽器/服務(wù)器系統(tǒng)。</p><p> 在MyEclipse8.5中配置tomcat,詳細(xì)的配置如圖1.2:</p><p> 圖1.2 tomcat配置</p><p> 在對(duì)tomcat配置完成后,在瀏覽器地址欄中輸入一下內(nèi)容:</p><p> http://localhost:9000</p><p>
33、; 會(huì)出現(xiàn)tomcat的歡迎頁面。</p><p> 2、系統(tǒng)使用技術(shù)概述</p><p> 2.1、J2EE平臺(tái)簡介</p><p> J2EE核心是一組技術(shù)規(guī)范技術(shù)與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難
34、以互通的窘境。</p><p> J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺(tái),J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。</p><p>
35、這種基于組件,具有平臺(tái)無關(guān)性的J2EE 結(jié)構(gòu)使得J2EE 程序的編寫十分簡單,因?yàn)闃I(yè)務(wù)邏輯被封裝成可復(fù)用的組件,并且J2EE 服務(wù)器以容器的形式為所有的組件類型提供后臺(tái)服務(wù). 因?yàn)槟悴挥米约洪_發(fā)這種服務(wù),所以你可以集中精力解決手頭的業(yè)務(wù)問題。 </p><p> 容器和服務(wù)容器設(shè)置定制了J2EE服務(wù)器所提供得內(nèi)在支持,包括安全,事物處理,JNDI(Java Naming and Directory Interf
36、ace)尋址,遠(yuǎn)程連接等服務(wù),以下列出最重要的幾種服務(wù): </p><p> J2EE安全(Security)模型可以讓你配置 web 組件或enterprise bean,這樣只有被授權(quán)的用戶才能訪問系統(tǒng)資源. 每一客戶屬于一個(gè)特別的角色,而每個(gè)角色只允許激活特定的方法。你應(yīng)在enterprise bean的布置描述中聲明角色和可被激活的方法。由于這種聲明性的方法,你不必編寫加強(qiáng)安全性的規(guī)則。 </p&
37、gt;<p> J2EE 事務(wù)管理(Transaction Management)模型讓你指定組成一個(gè)事務(wù)中所有方法間的關(guān)系,這樣一個(gè)事務(wù)中的所有方法被當(dāng)成一個(gè)單一的單元. 當(dāng)客戶端激活一個(gè)enterprise bean中的方法,容器介入一管理事務(wù)。因有容器管理事務(wù),在enterprise bean中不必對(duì)事務(wù)的邊界進(jìn)行編碼。要求控制分布式事務(wù)的代碼會(huì)非常復(fù)雜。你只需在布置描述文件中聲明enterprise bean的事
38、務(wù)屬性,而不用編寫并調(diào)試復(fù)雜的代碼。容器將讀此文件并為你處理此enterprise bean的事務(wù)。JNDI 尋址(JNDI Lookup)服務(wù)向企業(yè)內(nèi)的多重名字和目錄服務(wù)提供了一個(gè)統(tǒng)一的接口,這樣應(yīng)用程序組件可以訪問名字和目錄服務(wù). </p><p> J2EE遠(yuǎn)程連接(Remote Client Connectivity)模型管理客戶端和enterprise bean間的低層交互. 當(dāng)一個(gè)enterpris
39、e bean創(chuàng)建后,一個(gè)客戶端可以調(diào)用它的方法就象它和客戶端位于同一虛擬機(jī)上一樣. </p><p> 生存周期管理(Life Cycle Management)模型管理enterprise bean的創(chuàng)建和移除,一個(gè)enterprise bean在其生存周期中將會(huì)歷經(jīng)幾種狀態(tài)。容器創(chuàng)建enterprise bean,并在可用實(shí)例池與活動(dòng)狀態(tài)中移動(dòng)他,而最終將其從容器中移除。即使可以調(diào)用enterprise b
40、ean的create及remove方法,容器也將會(huì)在后臺(tái)執(zhí)行這些任務(wù)。</p><p> 2.2、Struts框架技術(shù)</p><p> Struts是一個(gè)免費(fèi)的,開源的Java Web開發(fā)框架,提供MVC體系結(jié)構(gòu),以及其它的工具比如常用的標(biāo)簽,表單數(shù)據(jù)的驗(yàn)證等。Struts是java開發(fā)中應(yīng)用最廣泛的MVC框架,有著詳細(xì)的文檔,廣泛的支持。</p><p>
41、 Struts目前包括1.x版本與2.x版本,二者都是MVC的框架,,但是設(shè)計(jì)思想,實(shí)現(xiàn)方式以及使用玩去不一樣。Struts 1.x就是原來的Struts框架。后來的Struts 2.x為原來的WebWork框架。WebWork框架也是Apache的一個(gè)開源框架,參考Struts 1.x開發(fā)的。</p><p> 盡管從名稱是那個(gè)看,Struts已經(jīng)升級(jí)到Struts 2了,但是這并不意味著Struts 1.x
42、 已經(jīng)過時(shí)。Struts 1與Struts 2 僅僅是兩種不同形式的MVC框架,代表著兩種不同的設(shè)計(jì)思想。目前網(wǎng)絡(luò)上人有很多正在運(yùn)行的Web應(yīng)用是用Struts1.x框架的。在本系統(tǒng)中采用Struts1.x技術(shù)對(duì)系統(tǒng)中的mvc框架進(jìn)行支持。</p><p> MVC (Model View Controler)本來是存在于web應(yīng)用程序中的,M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和
43、V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。</p><p> 2.3、Hibernate框架技術(shù)概述</p><p><b> 一、ORM概述</b></p><p> Hibernate是一種ORM框架,與各種數(shù)
44、據(jù)庫、SQL語句打交道,是數(shù)據(jù)持久化的一種解決方案。在商業(yè)系統(tǒng)的開發(fā)中,數(shù)據(jù)持久化是比較核心的技術(shù)之一。傳統(tǒng)的數(shù)據(jù)持久化編程中,需要使用JDBC并配合大量的SQL語句。Connection,Statement,ResultSet等JDBC API與SQL夾雜在一起,開發(fā)效率都很低下。后來出現(xiàn)了DAO模式,所有的JDBC API與SQL語句均移到了DAO層,但是仍然需要編寫大量的SQL語句。開發(fā)業(yè)務(wù)負(fù)責(zé)、數(shù)據(jù)表繁多的系統(tǒng),無疑是噩夢(mèng)一樣。
45、</p><p> DAO層其實(shí)很有規(guī)律。插入數(shù)據(jù)時(shí),無非就是把POJO拆分成各種屬性然后并拼拼裝為SQL語句,保存進(jìn)數(shù)據(jù)庫;讀取數(shù)據(jù)是,無非就是用SQL把POJO的各種屬性從數(shù)據(jù)庫讀出來,然后并裝為POJO對(duì)象返回。而且POJO與數(shù)據(jù)表、POJO屬性與數(shù)據(jù)表的列,都存在著某種固定的映射關(guān)系。如果能夠用程序自動(dòng)生成SQL語句就好了。</p><p> ORM就是做這種工作的框架。它通過
46、配置文件或者使用java注解把Java對(duì)象映射到數(shù)據(jù)庫上,自動(dòng)生成SQL語句并執(zhí)行。ORM技術(shù)已經(jīng)十分成熟,廣泛應(yīng)用于各種大規(guī)模的系統(tǒng)中。</p><p> 二、Hibernate核心原理</p><p> ORM的思想由來已久,市面上也出現(xiàn)了多種ORM框架。其中最成功的是Hibernate,</p><p> Hibernate使用簡單,功能強(qiáng)大、對(duì)市面上所
47、有的數(shù)據(jù)庫都有良好的支持。</p><p> JDBC編程中,開發(fā)者通過在DAO層編寫INSERT SQL語句插入數(shù)據(jù),編寫UPDATE</p><p> 語句保存數(shù)據(jù),編寫DELETE語句刪除語句,通過SELECT語句查詢數(shù)據(jù)。</p><p> 在Hibernate中,原理也是一樣的,只不過Hibernate充當(dāng)了DAO層,根據(jù)POJO與實(shí)現(xiàn)類的映射配置自
48、動(dòng)生成相應(yīng)的SQL語句。從控制臺(tái)輸出可以看到Hibernate生成的SQL語句。</p><p> JDBC中的SQL語句是由開發(fā)者事先寫好的,而Hibernate中的SQL語句是自動(dòng)生成的。因此如果實(shí)體類發(fā)生變化,則在JDBC中需要修改所有的相關(guān)SQL語句,這樣會(huì)使工作量放大,而在Hibernate中只需要修改實(shí)體類配置。</p><p> 2.4、Spring框架技術(shù)概述</
49、p><p> Spring的一個(gè)最大的目的就是使J2EE開發(fā)更加容易。同時(shí),Spring之所以與Struts、Hibernate等單層框架不同,是因?yàn)镾pring致力于提供一個(gè)以統(tǒng)一的、高效的方式構(gòu)造整個(gè)應(yīng)用,并且可以將單層框架以最佳的組合揉和在一起建立一個(gè)連貫的體系??梢哉fSpring是一個(gè)提供了更完善開發(fā)環(huán)境的一個(gè)框架,可以為POJO(Plain Old Java Object)對(duì)象提供企業(yè)級(jí)的服務(wù)。</
50、p><p> 一、Spring的初衷:</p><p> 1、J2EE開始應(yīng)該更加簡單。</p><p> 2、使用接口而不是使用類,是更好的編程習(xí)慣。Spring將使用接口的復(fù)雜度幾乎降低到了零。</p><p> 3、為JavaBean提供了一個(gè)更好的應(yīng)用配置框架。</p><p> 4、更多地強(qiáng)調(diào)面向?qū)ο蟮?/p>
51、設(shè)計(jì),而不是現(xiàn)行的技術(shù)如J2EE。</p><p> 5、盡量減少不必要的異常捕捉。</p><p> 6、使應(yīng)用程序更加容易測試。</p><p> 二、Spring的目標(biāo):</p><p> 1、可以令人方便愉快的使用Spring。</p><p> 2、應(yīng)用程序代碼并不依賴于Spring APIs。&l
52、t;/p><p> 3、Spring不和現(xiàn)有的解決方案競爭,而是致力于將它們?nèi)诤显谝黄稹?lt;/p><p> 三、Spring的基本組成:</p><p> 1、最完善的輕量級(jí)核心框架。</p><p> 2、通用的事務(wù)管理抽象層。</p><p> 3、JDBC抽象層。</p><p>
53、 4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。</p><p><b> 5、AOP功能。</b></p><p> 6、靈活的MVC Web應(yīng)用框架。</p><p> 2.5、Spring框架技術(shù)詳解</p><p> Spring是一個(gè)開源框架,它由R
54、od Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。</p><p> 簡單來說,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。</p><p&
55、gt; 輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。</p><p> 控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)
56、的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。</p><p> 面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯—
57、—僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。 </p><p> 容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容
58、器,它們經(jīng)常是龐大與笨重的,難以使用。 </p><p> 框架——Spring可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。 </p><p> 所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們
59、也為Spring中的各種模塊提供了基礎(chǔ)支持。</p><p><b> 2.6、名詞解釋</b></p><p> HTML: Hypertext Markup Language超文本標(biāo)記語言。</p><p> CSS: Cascading Style Sheets層疊樣式表,是一種標(biāo)記語言,它不需要編譯可</p><
60、;p> 以直接由瀏覽器執(zhí)行。</p><p> JavaScript: 一種可以控制HTML元素的網(wǎng)絡(luò)腳本語言,也是一種在瀏覽器端執(zhí)行</p><p> 的解釋性編程語言,它具有靈活性好、功能強(qiáng)大的特點(diǎn),是因特網(wǎng)上最流行的腳本語言。</p><p> JSP: Java Server Page,是SUN公司開發(fā)的一種服務(wù)器端動(dòng)態(tài)頁面生成技術(shù),主<
61、/p><p> 要組成部分是html元素以及少量的java代碼。</p><p> Servlet: SUN公司制定的一種用于擴(kuò)展web服務(wù)器功能的組件規(guī)范。</p><p> Tomcat: Servlet容器,第三方開源門戶Apache公司實(shí)現(xiàn)了Servlet容器規(guī)范,用</p><p> 于執(zhí)行Servlet的服務(wù)器。</p&
62、gt;<p> MVC: 這是一種架構(gòu)模型。M表示Model層,V表示View層,C表示Controller層,</p><p> Model層包括實(shí)體模型和業(yè)務(wù)操作,Controller用來控制用戶的所有請(qǐng)求和操作,View用來顯示請(qǐng)求的視圖。</p><p> Jquery:是一個(gè)開源的javascript框架,功能很強(qiáng)大,可以使編碼變得更加簡潔。</p>
63、;<p> JDBC: Java Database Connectivity,Java語言訪問數(shù)據(jù)庫的一套接口集合。</p><p> B/S: 即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),B/S最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝專門的軟件,只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。</p><p> Struts1:一種典型的MVC框架,本系
64、統(tǒng)的主要靈魂。</p><p> 3、需求分析與系統(tǒng)設(shè)計(jì)</p><p><b> 3.1、目標(biāo)與要求</b></p><p> 通用電子商務(wù)平臺(tái)的設(shè)計(jì)是為了讓更多的企業(yè)擁有自己的網(wǎng)上交易活動(dòng),擴(kuò)展他們的經(jīng)營模式。作為一個(gè)商業(yè)性質(zhì)的電子商務(wù)平臺(tái),系統(tǒng)必須滿足企業(yè)的業(yè)務(wù)要求,與企業(yè)的商業(yè)活動(dòng)真正接軌,形成服務(wù)一體化。系統(tǒng)界面設(shè)計(jì)一定要友好,
65、操作安全,服務(wù)方便快捷。系統(tǒng)總體流程必須合理規(guī)范,無邏輯錯(cuò)誤。數(shù)據(jù)庫必須設(shè)計(jì)合理,數(shù)據(jù)的存儲(chǔ)一定要安全化。同時(shí),這是一個(gè)網(wǎng)站,必須要考慮到服務(wù)器的承載壓力和訪問速度。作為一個(gè)大學(xué)生的畢業(yè)設(shè)計(jì),它也必須符合大學(xué)生畢業(yè)設(shè)計(jì)的規(guī)范。</p><p> 3.2、系統(tǒng)設(shè)計(jì)思想</p><p> 本系統(tǒng)主要采用B/S三層模式,同時(shí)利用典型的MVC框架Struts1設(shè)計(jì)完成。本系統(tǒng)主要包括前臺(tái)交易系
66、統(tǒng)和后臺(tái)管理系統(tǒng),前臺(tái)功能如下:</p><p> a. 用戶模塊,其中包括用戶注冊(cè)、登錄、登出以及修改個(gè)人基本信息。</p><p> b. 主頁顯示模塊,其中包括分類瀏覽、按照書名檢索以及書城快訊功能。</p><p> c. 購物車模塊,該模塊實(shí)現(xiàn)商品的添加、數(shù)量修改,商品刪除、清</p><p><b> 空、結(jié)算。
67、</b></p><p> d. 訂單模塊,該模塊實(shí)現(xiàn)訂單信息的查詢功能功能。</p><p><b> 后臺(tái)功能如下:</b></p><p> a. 會(huì)員管理,主要實(shí)現(xiàn)用戶列表、分頁顯示、用戶刪除、修改、添加、詳</p><p> 細(xì)顯示以及按照用戶ID或者郵箱進(jìn)行搜索單個(gè)用戶功能。</p&
68、gt;<p> b. 訂單管理,主要是查詢訂單的信息。</p><p> c. 商品管理,主要實(shí)現(xiàn)商品列表、商品詳細(xì)信息、商品添加、刪除以及分類修改、商品基本信息修改。</p><p> d.公告管理,主要實(shí)現(xiàn)類別添加、刪除、修改、類別子類查詢等功能。</p><p> e. 管理員安全退出。</p><p> 3.3
69、、系統(tǒng)功能模塊圖</p><p> 一、系統(tǒng)的前臺(tái)功能模塊圖</p><p> 根據(jù)系統(tǒng)的功能,對(duì)前臺(tái)功能模塊進(jìn)行分析。</p><p> 前臺(tái)用戶模塊主要包括商品信息查看,分類展示,商品查詢,用戶注冊(cè),用戶登錄,用戶購買商品等7個(gè)主要模塊。</p><p> 前臺(tái)用戶模塊如圖3.1所示。</p><p>
70、圖3.1用戶前臺(tái)模塊圖</p><p> 二、系統(tǒng)的后臺(tái)功能模塊圖</p><p> 從專業(yè)方面上講說,前臺(tái)完成的是單純的網(wǎng)頁,幾乎不具有功能性,全部的數(shù)據(jù)都是通過數(shù)據(jù)庫查詢得到的,通過框架技術(shù)將數(shù)據(jù)庫中的信息合理的展示出來;后臺(tái)主要是對(duì)前臺(tái)信息的一種管理,包括大量的增刪改查的功能點(diǎn)和前臺(tái)頁面信息展示的信息。</p><p> 管理員模塊的主要功能是電子商務(wù)商
71、城網(wǎng)站的維護(hù)和管理,如商品的添加、修改、刪除等管理操作;商品大類的添加、查看、刪除、修改等管理操作;管理員的管理;用戶的管理;訂單的管理等操作。</p><p> 后臺(tái)信息的控制主要針對(duì)的是對(duì)前臺(tái)信息展示的一種控制。包括分類信息的展示,會(huì)員登錄,商品購買等的信息。最終都會(huì)進(jìn)入到后臺(tái)管理界面,進(jìn)行各種操作。</p><p> 3.4、數(shù)據(jù)庫概念模型設(shè)計(jì)</p><p&
72、gt; 數(shù)據(jù)庫設(shè)計(jì)(Database Design)是指對(duì)一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)秀的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的使用需求(信息要求和處理要求)。數(shù)據(jù)庫的設(shè)計(jì)分成幾個(gè)階段,要進(jìn)行需求分析,再進(jìn)行概念設(shè)計(jì)和物理邏輯設(shè)計(jì)等,其中要對(duì)表和字段進(jìn)行設(shè)計(jì)以及畫出E-R圖等。大多數(shù)網(wǎng)絡(luò)應(yīng)用系統(tǒng)都需要后臺(tái)數(shù)據(jù)庫的支持,對(duì)于這個(gè)電子商城網(wǎng)站來說,也不例外,在Windows操作系統(tǒng)中,Access和SQ
73、L Server是最常見的網(wǎng)絡(luò)后臺(tái)數(shù)據(jù)庫,在互聯(lián)網(wǎng)上,很多人出于價(jià)格方面的考慮選擇Access數(shù)據(jù)庫,操作起來比較簡單,但實(shí)現(xiàn)比較大的網(wǎng)絡(luò)應(yīng)用系統(tǒng),選擇SQL Server 數(shù)據(jù)庫要好。本系統(tǒng)選擇SQL SERVER 2008數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù),SQL SERVER 2008擁有友好的用戶界面和簡單的數(shù)據(jù)表的操作,易學(xué)易懂,通過向?qū)?chuàng)建表、窗體、查詢以及報(bào)表,自動(dòng)繪制數(shù)據(jù)統(tǒng)計(jì)圖和繪圖功能,具有有效管理和分析數(shù)據(jù)的功能。</p>
74、<p> 數(shù)據(jù)庫在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率及實(shí)現(xiàn)的效果產(chǎn)生影響,合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。對(duì)數(shù)據(jù)庫進(jìn)行設(shè)計(jì)的時(shí)候首先要對(duì)其進(jìn)行需求分析。</p><p> 需求分析階段要熟悉用戶的需求,對(duì)未來需求變化進(jìn)行了解,還要重視輸入和輸出,在這里還要注意一些細(xì)節(jié)問題,在定義數(shù)據(jù)庫表和字段的需求(輸入)時(shí),首先應(yīng)檢
75、查現(xiàn)有的或者已經(jīng)設(shè)計(jì)出的報(bào)表、查詢和視圖(輸出)以確定為了支持這些輸出哪些是必要的表和字段。還要?jiǎng)?chuàng)建數(shù)據(jù)字典和E-R圖,定義對(duì)象的命名規(guī)范等。用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢方面,這就要求數(shù)據(jù)庫結(jié)構(gòu)能夠充分顯示各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。</p><p> 通過系統(tǒng)功能分析,總結(jié)出需求信息:用戶分為兩種分別為
76、管理員和會(huì)員,管理員通過前臺(tái)的一個(gè)連接進(jìn)入到后臺(tái)管理頁面當(dāng)中。一般用戶和注冊(cè)用戶無需登錄就可以查看商品信息,只有注冊(cè)用戶可以進(jìn)行購買。注冊(cè)用戶登錄后在填寫訂單時(shí)從數(shù)據(jù)庫中調(diào)出用戶注冊(cè)信息。商品按照類別來分類,每一個(gè)商品都對(duì)應(yīng)一個(gè)分類,一個(gè)用戶可以購買多個(gè)或多種型號(hào)的商品,用戶一次可以購買多種商品,每一種商品生成一條訂單詳細(xì)信息記錄,然后多個(gè)這樣的訂單詳細(xì)信息組成一個(gè)訂單列表,每一個(gè)訂單列表與一個(gè)會(huì)員對(duì)應(yīng),發(fā)貨時(shí)以訂單列表為單位,并產(chǎn)生一
77、個(gè)訂單號(hào),用戶可以根據(jù)訂單號(hào)進(jìn)行查找自己的訂購信息,這些都保存在數(shù)據(jù)庫里的。</p><p> 根據(jù)系統(tǒng)功能分析和需求總結(jié),得到各個(gè)數(shù)據(jù)項(xiàng),并且根據(jù)數(shù)據(jù)項(xiàng)對(duì)數(shù)據(jù)庫進(jìn)行設(shè)計(jì),得到各個(gè)實(shí)體的記錄集。</p><p> 確定數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)后,就要設(shè)計(jì)滿足用戶需求的各個(gè)實(shí)體,以及它們之間的關(guān)系,為后面的物理邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。這些實(shí)體包括各種具體信息,通過它們之間的作用形成數(shù)據(jù)的流動(dòng)。&l
78、t;/p><p> 4、電子商務(wù)網(wǎng)站數(shù)據(jù)庫詳細(xì)設(shè)計(jì)</p><p> 4.1、數(shù)據(jù)庫表的設(shè)計(jì)</p><p> 通過對(duì)大多數(shù)電子上網(wǎng)網(wǎng)站的分析發(fā)現(xiàn),不同的電子上網(wǎng)網(wǎng)站的數(shù)據(jù)庫模式大致相同,我們采用目前主流的設(shè)計(jì)數(shù)據(jù)庫模型的工具Powerdesigner對(duì)系統(tǒng)的數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。將設(shè)計(jì)好的CRM圖可以生成適應(yīng)不同數(shù)據(jù)庫的pdm文件,進(jìn)而生成適應(yīng)不同主流數(shù)據(jù)庫的腳本文件
79、。</p><p> 網(wǎng)站最容易設(shè)計(jì)的部分是登錄模塊,登錄模塊當(dāng)中需要的一些信息,存在在用戶的信息表中。</p><p> 圖4.1成員信息數(shù)據(jù)表(tb_member)</p><p> 網(wǎng)站前臺(tái)會(huì)員登錄會(huì)看用到成員信息,有的網(wǎng)站會(huì)將管理員和成員放如一個(gè)表當(dāng)中通過不同的標(biāo)記,或者通過權(quán)限控制來限制登錄人員的信息是成員還是管理人員。在對(duì)數(shù)據(jù)庫設(shè)計(jì)中,采用簡單的多
80、表形式,避免了在一個(gè)表中對(duì)信息操作的麻煩。但在大型的商務(wù)網(wǎng)站中會(huì)用到權(quán)限的控制。</p><p> 圖4.2管理員數(shù)據(jù)表(tb_manager)</p><p> 電子商務(wù)網(wǎng)站需要將自己的商品信息展示給顧客,就設(shè)計(jì)到商品信息的展示。商品信息的展示方式不同,在系統(tǒng)中主要是特價(jià)商品,最新商品,還有就是低商品的信息進(jìn)行排序然后通過銷售排行的形式展示出來。所有的操作都是針對(duì)的一張數(shù)據(jù)表就是商品
81、信息。商品信息的具體結(jié)構(gòu)如下:</p><p> 圖4.3商品信息數(shù)據(jù)表(tb_goods)</p><p> 數(shù)據(jù)庫中商品信息進(jìn)行了分類,對(duì)商品信息的分類用兩張表,一張表存儲(chǔ)大類,第二章表存儲(chǔ)的是小類。和在一個(gè)表中存儲(chǔ)信息的區(qū)別就是在編程的過程中的處理方式發(fā)生了變化?;旧蠜]有什么大的區(qū)別。</p><p> 圖4.4父類信息表(tb_superType)&
82、lt;/p><p><b> 圖4.5子類信息表</b></p><p> 通知欄信息的展示,主要是用來展示站內(nèi)的一些通知信息,通知的信息是從數(shù)據(jù)庫當(dāng)中讀取出來的。不想靜態(tài)頁面,通過增加頁面來添加通知信息的。</p><p> 圖4.6公告板信息()</p><p> 4.2、數(shù)據(jù)庫物理設(shè)計(jì)</p>&
83、lt;p> 數(shù)據(jù)庫的物理設(shè)計(jì)也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)。根據(jù)在線使用的情況的不同,出于安全性和性能上的考慮,最好使用SQL Server 數(shù)據(jù)庫。不管數(shù)據(jù)庫采用哪一種,SQL(結(jié)構(gòu)化查詢語言)的基本語句都要用到。SQL中最基本的數(shù)據(jù)操作語句有:Insert, Select, Update和Delete; Insert語句是用戶用來將一行記錄插入到指定的表中,Select語句可以從一個(gè)或多個(gè)表中選取特定的行和列,因?yàn)椴樵兒蜋z索是數(shù)
84、據(jù)庫管理中最重要的功能,所以Select語句在SQL中是工作量最大的部分,Select語句的結(jié)果通常是生成另外一個(gè)表,在執(zhí)行過程中系統(tǒng)根據(jù)用戶的標(biāo)準(zhǔn)從數(shù)據(jù)庫中選出匹配的行和列,并將結(jié)果放到臨時(shí)的表中。在直接SQL(direct SQL)中,并且將查詢的結(jié)果運(yùn)用到系統(tǒng)的程序中,最后轉(zhuǎn)化為系統(tǒng)所要求的結(jié)果,然后傳送到瀏覽器終端。還有Update語句允許用戶在已知的表中對(duì)現(xiàn)有的行進(jìn)行修改,Delete語句用來刪除已知表中的行,如同Update
85、語句一樣,所有滿足Where子句條件的行都將被刪除,特別注意在執(zhí)行這條語句時(shí)就要十分小心。在實(shí)際的操作過程中肯定還有很多的屬性限制,譬如受限</p><p> 5、前臺(tái)模塊設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 5.1 、用戶模塊</b></p><p> 用戶模塊主要實(shí)現(xiàn)了用戶注冊(cè)、登入/登出、修改信息的功能,用戶模塊結(jié)構(gòu)功能如圖5.1所
86、示。</p><p><b> 圖</b></p><p><b> 圖5.1</b></p><p><b> 1、用戶注冊(cè)</b></p><p> 統(tǒng)采用了Struts的框架技術(shù)進(jìn)行表單數(shù)據(jù)基本驗(yàn)證,注冊(cè)頁面register.jsp表單中的數(shù)據(jù)只要有一項(xiàng)不符合驗(yàn)證
87、規(guī)則的數(shù)據(jù),則表單提交按鈕失效。為了保證用戶注冊(cè)的郵箱名在數(shù)據(jù)庫中是唯一的,使用了Ajax技術(shù)向服務(wù)器發(fā)送異步請(qǐng)求,如果數(shù)據(jù)庫中已經(jīng)存在,則在頁面上提示用戶“用戶以存在”的錯(cuò)誤消息。用戶注冊(cè)的流程圖如下:</p><p> 圖5.2 用戶注冊(cè)流程</p><p> 對(duì)用戶的信息進(jìn)行驗(yàn)證,如果部分驗(yàn)證信息沒有通過的話,會(huì)出現(xiàn)如下的報(bào)錯(cuò)信息。</p><p> 圖
88、 5.3 用戶注冊(cè)</p><p><b> 二、用戶登錄</b></p><p> 系統(tǒng)登錄界面(login.jsp)需要輸入用戶名和密碼,如果密碼或者郵箱不對(duì),則提示用戶相關(guān)錯(cuò)誤信息錯(cuò)誤信息如下圖。只要用戶成功登錄,則把當(dāng)前這個(gè)用戶對(duì)象加入到session當(dāng)中,并將用戶的信息展示在頁面中,用戶登錄流程如圖5.7所示。</p><p>
89、 圖5.4 登錄頁面 圖5.5 錯(cuò)誤信息</p><p> 圖 5.6 登錄流程圖</p><p><b> 三、用戶信息修改</b></p><p> 用戶點(diǎn)擊修改資料后,進(jìn)入modifyMember.jsp頁面,對(duì)會(huì)員資料進(jìn)行修改。該系統(tǒng)在設(shè)置的過程中不允許對(duì)用戶名進(jìn)行修改。在對(duì)用戶信
90、息修改之前對(duì)用戶修改的信息會(huì)進(jìn)行部分信息的驗(yàn)證,包括兩次輸入的密碼是否相同,還有電話和郵箱格式的驗(yàn)證。</p><p> 用戶資料信息修改頁面:</p><p> 圖5.7 頁面信息修改</p><p><b> 四、用戶登出</b></p><p> 用戶登出主要是把session中當(dāng)前的user屬性設(shè)置為空,
91、因?yàn)橹坝脩舻卿洺晒Φ臅r(shí)候已經(jīng)把用戶user放入了session中。只要session中的user屬性為空,用戶則相當(dāng)于退出了系統(tǒng),失去很多權(quán)限進(jìn)行相關(guān)操作。</p><p><b> 5.2 、主頁模塊</b></p><p> 該模塊主要包含分類瀏覽、商品檢索、熱銷圖書、新品上架、商城公告等功能。主頁模塊功能結(jié)構(gòu)如圖5.8所示。</p><
92、p> 圖 5.8 商品展示功能結(jié)構(gòu)圖</p><p><b> 一、分類瀏覽</b></p><p> 分類瀏覽主要是實(shí)現(xiàn)點(diǎn)擊頁面右側(cè)的類別,則可以查看相應(yīng)類別下的圖書功能,數(shù)據(jù)庫中存儲(chǔ)的全部是網(wǎng)站的圖片名稱,并不是具體的名字。在對(duì)數(shù)據(jù)庫進(jìn)行設(shè)計(jì)的時(shí)候,我們將商品類別設(shè)置了兩張表,一張表格是存儲(chǔ)父類的信息,另一張表格存儲(chǔ)的是子類的信息。這樣在第一次進(jìn)行網(wǎng)站
93、設(shè)計(jì)的過程中會(huì)清楚如何實(shí)現(xiàn)商品類別的展示。</p><p><b> 如下圖是商品</b></p><p><b> 圖5.9商品分類</b></p><p> 點(diǎn)擊商品分類的信息選擇分類中的信息。可以將查詢到的信息展示在網(wǎng)頁的中間部分。查詢到的商品的信息見下圖。</p><p> 圖5.1
94、1 商品分類列表</p><p> 商品分類列表中的信息,可以通過點(diǎn)擊連接查詢商品的詳細(xì)信息。商品的詳細(xì)信息也會(huì)在該位置進(jìn)行展示。詳細(xì)見下圖:</p><p> 圖5.12 商品相信信息</p><p><b> 二、商品檢索</b></p><p> 本系統(tǒng)實(shí)現(xiàn)的是關(guān)鍵字檢索功能,用戶輸入商品名稱,按照下拉列表
95、中的內(nèi)容進(jìn)行搜索,如果數(shù)據(jù)庫中沒有相應(yīng)的商品,提示用戶暫時(shí)沒有改商品;否則跳到搜索結(jié)果頁面,列出搜索到的商品。如果用戶不輸入關(guān)鍵字,點(diǎn)擊搜索按鈕,則該改按鈕不能向服務(wù)器發(fā)送請(qǐng)求,主要采用js驗(yàn)證,該流程如圖5.17所示。</p><p> 圖5.13 商品搜索</p><p> 輸入的查詢條件為:test(商品的名稱),搜索的父類為論文資料查詢到的展示信息如下:</p>
96、<p> 圖5.14 搜索頁面</p><p> 從數(shù)據(jù)庫中查詢的數(shù)據(jù)如下:</p><p> 圖5.15 商品搜索結(jié)果</p><p><b> 三、商城廣告</b></p><p> 點(diǎn)擊頁面上的商城公告當(dāng)中的信息,可以查看商城公告的信息。頁面的展示效果如下。</p><p&g
97、t; 圖5.16 商城公告</p><p> 圖5.17 公告信息</p><p><b> 四、特價(jià)商品</b></p><p> 商品信息的展示過程比較簡單。按照商品的類型,根據(jù)時(shí)間進(jìn)行展示。將商品的信息展示出來。主要是訪問數(shù)據(jù)庫當(dāng)中的內(nèi)容。在對(duì)特價(jià)商品展示的過程中,并沒有通過html語句繪制展示圖片的表格,而是通過對(duì)頁面的跳轉(zhuǎn),根
98、據(jù)頁面整體布局的要求,將頁面的背景圖片進(jìn)行了修改。</p><p> 首頁頁面信息的展示如下圖:</p><p><b> 圖5.18首頁展示</b></p><p> 頁面中的特價(jià)商品信息,可以查看到商品的價(jià)格,名稱,如果用戶想要查看到具體的信息,可以點(diǎn)擊詳細(xì)信息進(jìn)行查看。當(dāng)用戶點(diǎn)擊詳細(xì)信息后,會(huì)展示如下的圖片:</p>
99、<p><b> 圖5.19商品詳細(xì)</b></p><p> 在這里進(jìn)行權(quán)限的設(shè)置,如果用戶沒有登錄,商品詳細(xì)信息中就不會(huì)展現(xiàn)出購買的按鈕。核心的頁面代碼如下:</p><p> <c:iftest="${sessionScope.username!=null }"></c:if></td>&l
100、t;/p><p> <tdheight="25"><inputname="see22"type="button"class="btn_grey"</p><p> onclick="window.location.href='goodsDetails.lzw?id=${goo
101、ds.id }'"</p><p> value="詳細(xì)信息"/></p><p> <c:iftest="${sessionScope.username!=null }"></p><p> <inputname="see22"type="butt
102、on"class="btn_grey"</p><p> onclick="window.location.href='cartAdd.lzw?goodsID=${goods.id } '"</p><p> value="購買"/></p><p><b>
103、 </c:if></b></p><p> 通過引用標(biāo)簽中判讀來實(shí)現(xiàn)購買按鈕的展示,判斷用戶是否已經(jīng)登錄。如果用戶沒有登錄,就不能實(shí)現(xiàn)商品的購買。用戶的信息是在session機(jī)制當(dāng)中讀取的。如果session中用戶的信息為空,則商品就不能夠完成購買。展現(xiàn)出購買頁面的信息如下:</p><p> 圖5.20 商品詳細(xì)信息</p><p>
104、 在特價(jià)商品信息展示的頁面中,也有一個(gè)更多的鏈接,來查看除了頁面展示商品之外更多的商品。點(diǎn)擊更多后的頁面展示信息如下:</p><p> 圖5.21頁面展示信息</p><p><b> 五、新品上架</b></p><p> 商品信息的展示過程比較簡單。按照商品的類型,根據(jù)時(shí)間進(jìn)行展示。將商品的信息展示出來。主要是訪問數(shù)據(jù)庫當(dāng)中的內(nèi)容。
105、在對(duì)特價(jià)商品展示的過程中,并沒有通過html語句繪制展示圖片的表格,而是通過對(duì)頁面的跳轉(zhuǎn),根據(jù)頁面整體布局的要求,將頁面的背景圖片進(jìn)行了修改。</p><p> 首頁新品頁面信息的展示如下圖:</p><p> 圖5.22 新品上架</p><p> 頁面中的特價(jià)商品信息,可以查看到商品的價(jià)格,名稱,如果用戶想要查看到具體的信息,可以點(diǎn)擊詳細(xì)信息進(jìn)行查看。當(dāng)用
106、戶點(diǎn)擊詳細(xì)信息后,會(huì)展示如</p><p> 圖5.23 商品詳細(xì)的圖片:</p><p> 在新品上架信息展示的頁面中,也有一個(gè)更多的鏈接,來查看除了頁面展示商品之外更多的商品。點(diǎn)擊更多后的頁面展示信息如下:</p><p> 圖5.24 新品上架</p><p> 新品上架增加了權(quán)限的限制,也是對(duì)sesion中的信息進(jìn)行了判斷,具
107、體的信息銅弩弓特價(jià)商品的展示信息相同。</p><p><b> 六、時(shí)間信息展示</b></p><p> 考慮到頁面的整體布局,以及在今后的設(shè)計(jì)中可能會(huì)引入大量的js效果代碼。在這里進(jìn)行了時(shí)間的展示。主要是展示對(duì)特性的引用。</p><p> 頁面中引入js腳本文件的關(guān)鍵代碼為:</p><p> <s
108、cripttype="text/javascript"></p><p> function www_helpor_net() {</p><p> var Digital = new Date()</p><p> var hours = Digital.getHours()</p><p> var mi
109、nutes = Digital.getMinutes()</p><p> var seconds = Digital.getSeconds()</p><p> if (minutes <= 9)</p><p> minutes = "0" + minutes</p><p> if (seconds &
110、lt;= 9)</p><p> seconds = "0" + seconds</p><p> myclock = "現(xiàn)在時(shí)刻:" + hours + ":" + minutes + ":" + seconds</p><p> if (document.layers) {&l
111、t;/p><p> document.layers.liveclock.document.write(myclock)</p><p> document.layers.liveclock.document.close()</p><p> } elseif (document.all)</p><p> liveclock.innerH
112、TML = myclock</p><p> setTimeout("www_helpor_net()", 1000)</p><p><b> }</b></p><p> www_helpor_net();</p><p> 雖然在大型的商務(wù)網(wǎng)站中會(huì)很少用的js中的特效,但是在該系統(tǒng)中主要
113、是為了展示對(duì)腳本文件的應(yīng)用。</p><p><b> 5.3、購物車模塊</b></p><p> 電子商務(wù)網(wǎng)站一般都有一個(gè)購物車功能,它必須設(shè)計(jì)合理,功能便捷。本系統(tǒng)的購物車主要是基于session,沒有考慮用戶禁止cookie的情況。要設(shè)計(jì)一個(gè)購物車,就必須分析購物車應(yīng)該具備哪些功能。設(shè)計(jì)購物車一般要實(shí)寫一個(gè)類,代表購物車中的一項(xiàng)物品。系統(tǒng)編寫了一個(gè)物品類C
114、artItem,其包含三個(gè)屬性:商品數(shù)目,商品實(shí)體、是否購買,購物車定義了一個(gè)屬性Map<Integer,CartItem>代表當(dāng)前購物車中的所有物品。購物車的功能包括商品數(shù)量修改,刪除、結(jié)算、自動(dòng)統(tǒng)計(jì)價(jià)格等功能,購物車功能如圖5.25所示。</p><p><b> 圖5.25 購物車</b></p><p> 購物車支持收銀結(jié)賬,修改數(shù)量。自動(dòng)統(tǒng)計(jì)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)網(wǎng)站畢業(yè)論文
- 電子商務(wù)網(wǎng)站畢業(yè)論文
- 電子商務(wù)網(wǎng)站設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文——btoc電子商務(wù)網(wǎng)站
- 畢業(yè)論文——btoc電子商務(wù)網(wǎng)站
- 校園電子商務(wù)網(wǎng)站畢業(yè)論文
- 電子商務(wù)網(wǎng)站設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--電子商務(wù)網(wǎng)站設(shè)計(jì)
- 電子商務(wù)網(wǎng)站設(shè)計(jì)畢業(yè)論文
- 電子商務(wù)網(wǎng)站畢業(yè)論文7
- 畢業(yè)論文-旅游電子商務(wù)網(wǎng)站
- 電子商務(wù)網(wǎng)站的設(shè)計(jì)畢業(yè)論文
- 家電銷售電子商務(wù)網(wǎng)站畢業(yè)論文
- 家電銷售電子商務(wù)網(wǎng)站畢業(yè)論文
- 電子商務(wù)網(wǎng)站建設(shè)畢業(yè)論文網(wǎng)站設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文范文——電子商務(wù)網(wǎng)站設(shè)計(jì)
- 畢業(yè)論文范文——電子商務(wù)網(wǎng)站設(shè)計(jì)
- 電子商務(wù)網(wǎng)站的贏利模式畢業(yè)論文
- 畢業(yè)論文---電子商務(wù)網(wǎng)站設(shè)計(jì)與開發(fā)
- 電子商務(wù)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
評(píng)論
0/150
提交評(píng)論