版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要 </b></p><p> 隨著信息技術(shù)的逐步發(fā)展,電子商務(wù)已經(jīng)發(fā)展起來(lái)并在逐步壯大。電子商務(wù)的廣泛推廣,打破了時(shí)空限制,改變了貿(mào)易形態(tài),大大加速了整個(gè)社會(huì)的商品流通,有助于降低企業(yè)成本,提高企業(yè)競(jìng)爭(zhēng)力,尤其能夠使中小型企業(yè)直接進(jìn)入國(guó)際市場(chǎng)參與國(guó)際市場(chǎng)競(jìng)爭(zhēng)。電子商務(wù)的這些優(yōu)點(diǎn)使得書(shū)店的經(jīng)營(yíng)成本大大降低,因而網(wǎng)上書(shū)店得到了巨大的發(fā)展,越來(lái)越多的書(shū)店進(jìn)入
2、網(wǎng)絡(luò)時(shí)代。</p><p> 本論文的主要工作是研究并實(shí)現(xiàn)網(wǎng)上考試書(shū)店系統(tǒng)。本文首先介紹了網(wǎng)上購(gòu)書(shū)系統(tǒng)的開(kāi)發(fā)背景及國(guó)內(nèi)外發(fā)展?fàn)顩r,然后論述了系統(tǒng)的設(shè)計(jì)目標(biāo)、系統(tǒng)需求、總體設(shè)計(jì)方案和數(shù)據(jù)庫(kù)設(shè)計(jì),較詳細(xì)的介紹了系統(tǒng)的部分模塊詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)。最后,本文對(duì)系統(tǒng)進(jìn)行了單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試等。該系統(tǒng)分為前臺(tái)和后臺(tái)兩個(gè)模塊,前臺(tái)是用戶(hù)操作平臺(tái),具有顯示新上架圖書(shū)、搜索圖書(shū)、查看圖書(shū)信息、會(huì)員注冊(cè)、會(huì)員登錄、購(gòu)物車(chē)、訂
3、購(gòu)圖書(shū)、查看訂單等功能;后臺(tái)是管理員操作平臺(tái),具有圖書(shū)管理分類(lèi)、圖書(shū)管理、用戶(hù)管理、訂單管理等功能。</p><p> 本系統(tǒng)利用使用廣泛的Windows XP作為開(kāi)發(fā)平臺(tái),采用比較流行的JSP作為開(kāi)發(fā)語(yǔ)言,后臺(tái)數(shù)據(jù)庫(kù)使用免費(fèi)、簡(jiǎn)便的MySQL實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),采用MyEclipse作為編程工具,設(shè)計(jì)的系統(tǒng)采用MVC模式。</p><p> 關(guān)鍵字:電子商務(wù) JSP MySQL MV
4、C</p><p><b> Abstract</b></p><p> With the development of information technology, E-commerce has been developed and is gradually expanding. Wide Promotion of e-business has break t
5、he constraints of time, changed trade patterns, and greatly accelerated the speed of Circulation of goods, which help reduce corporation costs and improve the competitiveness of enterprises. Especially small and medium e
6、nterprises can make access to international markets to take part in the international Competition. These advantages of e-commerce grea</p><p> The chief work of this graduation dissertation is to research a
7、nd accomplish online- bookstore system. This graduation dissertation describes the background of development of online-bookstores and Global development, the target of the design, system requirements, overall designs, pl
8、ans of the database. There is more detailed Discussion of the detailed design and implementation. Finally, this dissertation describes the testing process of online- bookstore system. The system is divided up into two<
9、;/p><p> This system uses the widely used Windows XP as a development platform, uses the popular JSP as a development language, uses the free and simple MySQL as database to establish a connection, uses MyEcli
10、pse as a programming tool and uses the MVC design pattern.</p><p> Keywords: E-commerce JSP MySQL MVC</p><p><b> 目 錄</b></p><p><b> 第一章緒 論1</b></
11、p><p> 1.1 開(kāi)發(fā)背景1</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r1</p><p> 1.3 研究目標(biāo)、內(nèi)容2</p><p> 1.4 研究方法2</p><p> 第二章可行性與需求分析4</p><p> 2.1 可行性分析4</p><
12、p> 2.2 需求分析4</p><p> 第三章系統(tǒng)總體設(shè)計(jì)6</p><p> 3.1 系統(tǒng)功能描述6</p><p> 3.2 系統(tǒng)用例圖6</p><p> 3.3 功能模塊劃分圖7</p><p> 3.4 系統(tǒng)流程分析8</p><p> 第四章數(shù)
13、據(jù)庫(kù)設(shè)計(jì)11</p><p> 4.1 數(shù)據(jù)庫(kù)需求分析11</p><p> 4.2 系統(tǒng)E-R圖11</p><p> 4.3 系統(tǒng)E-R圖向關(guān)系模型的轉(zhuǎn)換11</p><p> 4.4 數(shù)據(jù)庫(kù)中表的設(shè)計(jì)12</p><p> 4.5 數(shù)據(jù)庫(kù)中表的建立腳本14</p><p&
14、gt; 4.6 數(shù)據(jù)庫(kù)訪問(wèn)16</p><p> 第五章部分模塊功能實(shí)現(xiàn)17</p><p> 5.1 圖書(shū)查詢(xún)?cè)O(shè)計(jì)17</p><p> 5.2 將圖書(shū)加入購(gòu)物車(chē)設(shè)計(jì)18</p><p> 5.3 購(gòu)物車(chē)管理設(shè)計(jì)19</p><p> 5.4 系統(tǒng)運(yùn)行效果21</p><
15、p> 第六章系統(tǒng)測(cè)試24</p><p> 6.1軟件測(cè)試的概念24</p><p> 6.2軟件測(cè)試的具體步驟24</p><p> 6.3部分軟件測(cè)試用例25</p><p><b> 結(jié) 論27</b></p><p><b> 謝 辭28<
16、;/b></p><p><b> 參考文獻(xiàn)29</b></p><p><b> 緒 論</b></p><p> 本課題的主要工作是網(wǎng)上考試書(shū)店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。在設(shè)計(jì)前,需要了解網(wǎng)上書(shū)店的開(kāi)發(fā)背景和國(guó)內(nèi)外的發(fā)展?fàn)顩r,確定此類(lèi)網(wǎng)站是否具有發(fā)展前景。在本章中將對(duì)此進(jìn)行詳細(xì)介紹。在本章最后,將介紹本課題的研究
17、目標(biāo)和內(nèi)容以及用于本系統(tǒng)實(shí)現(xiàn)的開(kāi)發(fā)工具。</p><p><b> 1.1 開(kāi)發(fā)背景</b></p><p> 隨著信息技術(shù)的不斷發(fā)展,信息的處理和傳遞突破了時(shí)間和地域的局限,網(wǎng)絡(luò)化和全球化成為一種不可避免的世界趨勢(shì)。由于網(wǎng)絡(luò)用戶(hù)的迅速膨脹,人們紛紛將眼光投向因特網(wǎng),在線(xiàn)系統(tǒng)迅速發(fā)展壯大起來(lái),電子商務(wù)就是在此基礎(chǔ)上發(fā)展起來(lái)的。而隨著電子商務(wù)的不斷發(fā)展,網(wǎng)上購(gòu)物越來(lái)
18、越普及,越來(lái)越多的商家建立了自己的網(wǎng)上店鋪,人們從此得以足不出戶(hù)地購(gòu)買(mǎi)所需商品[1]。網(wǎng)上書(shū)店是網(wǎng)上店鋪的一個(gè)方面,已經(jīng)逐漸成為Internet上一道靚麗的風(fēng)景。網(wǎng)上書(shū)店不僅查找圖書(shū)方便和快速、圖書(shū)種類(lèi)繁多、價(jià)錢(qián)低廉,而且能夠在全世界范圍和24小時(shí)全天候銷(xiāo)售圖書(shū),突破了場(chǎng)地和時(shí)間的限制。</p><p> 本論文的設(shè)計(jì)方案是基于實(shí)體書(shū)店的眾多不便之處而提出的,希望能解決實(shí)體書(shū)店占地廣、查找不便、成本高、銷(xiāo)售時(shí)間
19、短、銷(xiāo)售區(qū)域小等的缺點(diǎn),充分利用網(wǎng)上書(shū)店網(wǎng)站的眾多優(yōu)點(diǎn),減少書(shū)店的運(yùn)營(yíng)成本,增加圖書(shū)的銷(xiāo)售數(shù)量,獲得更豐厚的利潤(rùn)。據(jù)調(diào)查,目前網(wǎng)上書(shū)店網(wǎng)站的種類(lèi)和數(shù)量都不多,而專(zhuān)門(mén)針對(duì)考試方面的網(wǎng)上書(shū)店網(wǎng)站更是少之又少。因此,針對(duì)眾多考生的考試書(shū)店的發(fā)展具有光明的前景。</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r</p><p> 網(wǎng)上書(shū)店在國(guó)內(nèi)外的發(fā)展?fàn)顩r有很大的不同。在海外,網(wǎng)上書(shū)店已得到了極大的發(fā)
20、展,取得了巨大的成功,尤其是西方發(fā)達(dá)國(guó)家的網(wǎng)上書(shū)店,已處于世界領(lǐng)先地位。在國(guó)內(nèi),網(wǎng)上書(shū)店發(fā)展還不完善,發(fā)展?jié)摿薮螅熬肮饷鳌?lt;/p><p> 國(guó)外網(wǎng)上書(shū)店起步早、規(guī)模大、發(fā)展快、數(shù)量多,在歐美等經(jīng)濟(jì)技術(shù)比較發(fā)達(dá)的國(guó)家和地區(qū)發(fā)展的非常迅速和廣泛。在90年代末期,國(guó)外已有網(wǎng)上書(shū)店1000多家。而其中最令人矚目的是亞馬遜(Amazon.com)——全球最大的網(wǎng)上書(shū)店。它為讀者提供了方便舒適的網(wǎng)上購(gòu)物環(huán)境,豐富的圖
21、書(shū)品種(達(dá)310萬(wàn)以上),優(yōu)惠的價(jià)格(折扣率從20%到50%),完善的金融結(jié)算制度,以及高效率的配送服務(wù),并且實(shí)現(xiàn)了零庫(kù)存運(yùn)轉(zhuǎn)。自1995年7月亞馬遜書(shū)店賣(mài)出第一本書(shū)起,它的銷(xiāo)售總額直線(xiàn)上升,1997年銷(xiāo)售額即達(dá)1.48億美元,為1996年的9.3倍,1998年猛增到5.4億美元,增幅達(dá)365%。它塑造了成功的網(wǎng)上銷(xiāo)售模式,產(chǎn)生了良好的品牌效應(yīng)。亞馬遜在短短幾年之內(nèi),獲得了巨大的成功,成了全世界圖書(shū)業(yè)界矚目的對(duì)象。</p>
22、<p> 國(guó)內(nèi)的網(wǎng)上書(shū)店主要具有以下特點(diǎn):</p><p> 1. 起步晚、數(shù)量少。最早的網(wǎng)上書(shū)店是中國(guó)書(shū)店,建立于1995年,而后至1997年新華書(shū)店才建立網(wǎng)上書(shū)店。</p><p> 2. 起步低,模式少。2005年評(píng)選出總體競(jìng)爭(zhēng)力前5名網(wǎng)上書(shū)店是:當(dāng)當(dāng)網(wǎng)上書(shū)店、中國(guó)尋書(shū)網(wǎng)、上海書(shū)城網(wǎng)上書(shū)店、博庫(kù)網(wǎng)上書(shū)店、全國(guó)購(gòu)書(shū)網(wǎng)。</p><p> 3.
23、 分布極不平衡。網(wǎng)上書(shū)店基本上集中在以北京為中心的地區(qū),以及上海為中心的地區(qū)和廣東為中心的地區(qū)。</p><p> 現(xiàn)在,國(guó)內(nèi)的網(wǎng)上書(shū)店主要有卓越網(wǎng)和當(dāng)當(dāng)網(wǎng),發(fā)展的比較完善。雖然跟國(guó)外網(wǎng)上書(shū)店還有很大差距,但它們正逐漸發(fā)展得更加健全、完善,逐步縮小跟國(guó)外的差距。</p><p> 1.3 研究目標(biāo)、內(nèi)容</p><p> 本課題主要研究網(wǎng)上考試書(shū)店系統(tǒng)的設(shè)計(jì)與
24、實(shí)現(xiàn)。本網(wǎng)站主要為考生購(gòu)買(mǎi)考試用書(shū)而設(shè)計(jì)。專(zhuān)業(yè)網(wǎng)站在內(nèi)容和服務(wù)方面針對(duì)性強(qiáng),對(duì)用戶(hù)的吸引力大,相同類(lèi)型的專(zhuān)業(yè)網(wǎng)站之間的競(jìng)爭(zhēng)力非常激烈。因此,一個(gè)競(jìng)爭(zhēng)強(qiáng)的網(wǎng)站應(yīng)該便于用戶(hù)使用和易于管理員管理,使系統(tǒng)實(shí)現(xiàn)最大程度的自動(dòng)化,盡可能的減少人工操作環(huán)節(jié),縮短交易時(shí)間和減少由于人工造成的失誤,因此必須注重每一個(gè)細(xì)小的環(huán)節(jié),避免電子交易時(shí)發(fā)生錯(cuò)誤,避免造成經(jīng)濟(jì)損失。將數(shù)據(jù)庫(kù)與動(dòng)態(tài)網(wǎng)頁(yè)相關(guān)聯(lián),使得商品信息可以及時(shí)的保存和更新,使得用戶(hù)和管理員可以更好的
25、及時(shí)了解商品買(mǎi)賣(mài)信息。</p><p> 本系統(tǒng)主要實(shí)現(xiàn)兩個(gè)功能:一是用戶(hù)網(wǎng)上選書(shū)、購(gòu)書(shū)、產(chǎn)生訂單的功能,二是管理員對(duì)圖書(shū)、用戶(hù)、訂單進(jìn)行管理的功能。兩大功能可以分為以下功能模塊:</p><p> 1. 匿名用戶(hù)模塊:匿名用戶(hù)可以查看圖書(shū)信息、使用模糊查詢(xún)搜索圖書(shū)、進(jìn)入注冊(cè)頁(yè)面注冊(cè)成會(huì)員</p><p> 2. 會(huì)員用戶(hù)模塊:除具有匿名用戶(hù)的所有功能外,還可
26、以登錄帳號(hào)、訂購(gòu)圖書(shū)、查看訂單</p><p> 3. 購(gòu)物車(chē)模塊:臨時(shí)存儲(chǔ)會(huì)員訂購(gòu)的圖書(shū)</p><p> 4. 管理員模塊:管理員可以進(jìn)行圖書(shū)分類(lèi)管理、管理圖書(shū)、管理用戶(hù)、管理訂單</p><p><b> 1.4 研究方法</b></p><p> 本系統(tǒng)利用Windows XP作為開(kāi)發(fā)平臺(tái),采用JSP作為
27、開(kāi)發(fā)語(yǔ)言,后臺(tái)數(shù)據(jù)庫(kù)使用MySQL實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),設(shè)計(jì)的系統(tǒng)采用MVC模式。</p><p> JSP是Java Server Page的縮寫(xiě),是由Sun公司倡導(dǎo)、許多公司參與,于1999年推出的一種Web服務(wù)設(shè)計(jì)標(biāo)準(zhǔn)。JSP是基于Java Servlet以及整個(gè)Java體系的Web開(kāi)發(fā)技術(shù),利用這一技術(shù)可以建立安全、跨平臺(tái)的先進(jìn)動(dòng)態(tài)網(wǎng)站。JSP是以Java技術(shù)為基礎(chǔ),又在許多方面做了改進(jìn),具有動(dòng)態(tài)頁(yè)面與靜態(tài)頁(yè)面
28、分離,能夠脫離硬件平臺(tái)的束縛,以及編譯后運(yùn)行等優(yōu)點(diǎn),完全克服了ASP的缺點(diǎn)。目前,JSP已經(jīng)成為開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站的主流技術(shù)[2]。</p><p> Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶(hù)。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。JSP是在服務(wù)器端執(zhí)行的,通常返回給客戶(hù)端的就是一個(gè)HTML
29、文本,因此客戶(hù)端只要有瀏覽器就能瀏覽。</p><p> MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQLAB公司。在2008年1月16日被Sun公司收購(gòu)。而2009年,Sun又被Oracle收購(gòu)。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MySQ
30、L還具有以下優(yōu)點(diǎn):使用C和C++編寫(xiě),并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性;為多種編程語(yǔ)言提供了API;支持多線(xiàn)程,充分利用CPU資源;優(yōu)化的SQL查詢(xún)算法,有效地提高查詢(xún)速度等[3]。 </p><p> MVC是三個(gè)單詞的縮寫(xiě),分別為:模型(Model),視圖(View)和控制器(Controller)。 MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。MVC模式的目的就是實(shí)現(xiàn)
31、Web系統(tǒng)的職能分工。MVC具有以下的優(yōu)點(diǎn):低耦合行、高重用性和可適用性、較低的生命周期成本、快速的部署、可維護(hù)性、有利于軟件工程化管理。 </p><p> 圖1.1 MVC模式</p><p> Model層實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通??梢杂肑avabean來(lái)實(shí)現(xiàn)。Javabean主要提供簡(jiǎn)單的setXXX方法和getXXX方法,在這些方法中不涉及對(duì)數(shù)據(jù)的具體處理細(xì)節(jié),以便增強(qiáng)模型
32、的通用性。</p><p> View層用于與用戶(hù)的交互,通常用JSP來(lái)實(shí)現(xiàn)。其作用主要是向控制器提交必要的數(shù)據(jù)和為模型提供數(shù)據(jù)顯示。</p><p> Controller層是一個(gè)或多個(gè)Servlet對(duì)象,是Model與View之間溝通的橋梁,根據(jù)視圖提供的要求進(jìn)行數(shù)據(jù)處理操作,并將有關(guān)的結(jié)果存儲(chǔ)到Javabean中,然后Servlet使用重定向方式請(qǐng)求視圖中的某個(gè)JSP頁(yè)面更新顯示
33、[4]。</p><p><b> 可行性與需求分析</b></p><p> 系統(tǒng)開(kāi)發(fā)前,經(jīng)過(guò)可行性分析和需求分析,才能使系統(tǒng)更加可行、合理。可行性分析是決定“做還是不做”,需求分析是決定“做什么、不做什么”。</p><p><b> 2.1 可行性分析</b></p><p> 可行性
34、研究主要內(nèi)容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟(jì)效益為核心,圍繞影響項(xiàng)目的各種因素,運(yùn)用大量的數(shù)據(jù)資料論證擬建項(xiàng)目是否可行。也就是說(shuō)可行性研究是為了弄清楚系統(tǒng)開(kāi)發(fā)的項(xiàng)目是不是可以實(shí)現(xiàn)和值得進(jìn)行研究的過(guò)程,實(shí)際上是一次大大簡(jiǎn)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過(guò)程,所以,進(jìn)行可行性分析是非常必要的,也是很重要的[5]。</p><p> 經(jīng)過(guò)最初的設(shè)計(jì)目標(biāo)和進(jìn)行的市場(chǎng)調(diào)查,可以從以下三個(gè)方面對(duì)本系統(tǒng)進(jìn)行可行性分析:管理可行
35、性、經(jīng)濟(jì)可行性、技術(shù)可行性。</p><p><b> 1.管理可行性</b></p><p> 參考當(dāng)當(dāng)網(wǎng)、卓越網(wǎng)的圖書(shū)訂購(gòu)流程和幫助教程,并由多次網(wǎng)購(gòu)圖書(shū)的同學(xué)提供參考意見(jiàn)和多名考研期間的考生提供建議,可確保系統(tǒng)在管理層面上可行。</p><p><b> 2.經(jīng)濟(jì)可行性</b></p><p
36、> JSP+Tomcat+MySQL是免費(fèi)開(kāi)源的框架或者軟件,使得開(kāi)發(fā)成本大大下降。系統(tǒng)可重用性高,除可用于針對(duì)考生的考試書(shū)店,經(jīng)過(guò)修改后,可用于其他類(lèi)型的網(wǎng)上書(shū)店。采用MVC模式使得開(kāi)本成本降低和易于維護(hù)用戶(hù)接口。界面美觀、易懂、操作方便,電腦初學(xué)者無(wú)需經(jīng)過(guò)學(xué)習(xí)就可以輕松得操作本系統(tǒng)的所有功能。本系統(tǒng)的開(kāi)發(fā)在經(jīng)濟(jì)上是可行的。</p><p><b> 3. 操作可行性</b>&l
37、t;/p><p> JSP+Servlet在技術(shù)上已經(jīng)成熟,MySQL數(shù)據(jù)庫(kù)易于連接,采用MVC模式,使得視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)MVC的模型層即可。因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。MVC模式允許你使用各種不同樣式的視圖來(lái)訪問(wèn)同一個(gè)服務(wù)器端的代碼。由于模型返回的數(shù)據(jù)沒(méi)有進(jìn)行
38、格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用HTML來(lái)表示,但是也有可能用WAP來(lái)表示,而這些表示所需要的僅僅是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無(wú)需做任何改變。</p><p> 綜上所述,本系統(tǒng)從各種方面分析都是完全可行的,系統(tǒng)的開(kāi)發(fā)完全可行。</p><p><b> 2.2 需求分析</b></p><p>
39、 軟件需求分析是指用戶(hù)對(duì)目標(biāo)系統(tǒng)在功能、性能、行為等方面的期望,也就是說(shuō)要解決的問(wèn)題進(jìn)行詳細(xì)的分析,弄清楚問(wèn)題的要求,包括用戶(hù)需要輸入什么數(shù)據(jù),要如何操作,最后要得到什么結(jié)果。</p><p> 需求分析是在可行性研究的基礎(chǔ)上進(jìn)行的,可行性研究實(shí)質(zhì)上是一次完整的分析和設(shè)計(jì)過(guò)程,只不過(guò)是在抽象的層次上進(jìn)行的大大壓縮和簡(jiǎn)化的分析和設(shè)計(jì)過(guò)程。需求分析的結(jié)果是軟件開(kāi)發(fā)的基礎(chǔ),必須仔細(xì)驗(yàn)證它的正確性,開(kāi)發(fā)人員必須和用戶(hù)取
40、得完全一致的意見(jiàn),需求分析的文檔應(yīng)該被用戶(hù)所確認(rèn)。為了更準(zhǔn)確、更具體地確定用戶(hù)的需求,往往需要構(gòu)造出目標(biāo)系統(tǒng)的原型,供用戶(hù)試用以取得實(shí)踐。良好的分析活動(dòng)有助于避免或盡早剔除早期錯(cuò)誤,從而提高軟件生產(chǎn)率,降低開(kāi)發(fā)成本,改進(jìn)軟件質(zhì)量[6]。</p><p> 將需求分析分為兩個(gè)過(guò)程,一個(gè)是理解需求,另一個(gè)是分析需求。 </p><p><b> 理解需求。</b>
41、;</p><p> 理解需求主要是開(kāi)發(fā)人員同用戶(hù)進(jìn)行溝通,了解用戶(hù)的的目地和意向,并且可以通過(guò)開(kāi)會(huì)、跟隨用戶(hù)參與實(shí)際工作、發(fā)放一些問(wèn)卷調(diào)查等形式來(lái)了解需求,進(jìn)而理解需求。</p><p><b> 分析需求</b></p><p> 分析需求就是描述系統(tǒng)的需求,通過(guò)定義系統(tǒng)中的關(guān)鍵信息來(lái)建立模型。分析需求是在正確地理解需求的基礎(chǔ)上來(lái)綜合
42、歸納用戶(hù)的需求,并且反饋給用戶(hù),最終由開(kāi)發(fā)人員同用戶(hù)一起確定需求的內(nèi)容。</p><p> 通過(guò)上面的需求分析的過(guò)程,描述本系統(tǒng)的需求分析:</p><p> 1. 本系統(tǒng)根據(jù)需要把用戶(hù)權(quán)限分為管理員和用戶(hù)兩類(lèi)。管理員能夠?qū)τ脩?hù)的部分信息進(jìn)行管理。</p><p> 2. 管理員進(jìn)貨,收集圖書(shū)所有信息后,可以將圖書(shū)信息發(fā)布到網(wǎng)站上。</p>&l
43、t;p> 3. 管理員可以對(duì)圖書(shū)類(lèi)別進(jìn)行查看、修改、刪除操作,可以對(duì)圖書(shū)進(jìn)行歸類(lèi)。</p><p> 4. 管理員可以對(duì)圖書(shū)信息進(jìn)行查看、修改、刪除操作。</p><p> 5. 管理員只能查看、刪除用戶(hù),不能對(duì)用戶(hù)的信息進(jìn)行修改。</p><p> 6. 管理員只能查看訂單、對(duì)訂單進(jìn)行發(fā)貨,不能對(duì)用戶(hù)訂單進(jìn)行修改、刪除操作。</p>&
44、lt;p> 7. 非用戶(hù)必須注冊(cè)成用戶(hù),需要經(jīng)過(guò)登錄才能操作,不注冊(cè)不能登錄。</p><p> 8. 用戶(hù)可以搜索圖書(shū)、查看圖書(shū)詳細(xì)、訂購(gòu)圖書(shū)。</p><p> 9. 用戶(hù)不經(jīng)過(guò)登錄,不能進(jìn)行訂購(gòu)操作。</p><p> 10.用戶(hù)可以查看以前所有的訂單。</p><p> 11.為了安全,用戶(hù)和管理員必須要有安全退出功能
45、。</p><p> 12.本系統(tǒng)是基于IE開(kāi)發(fā)的系統(tǒng),用戶(hù)和管理員只需連接網(wǎng)絡(luò)即可使用。</p><p><b> 系統(tǒng)總體設(shè)計(jì)</b></p><p> 通過(guò)需求分析階段的工作,系統(tǒng)應(yīng)該做什么已經(jīng)清楚了,總體設(shè)計(jì)階段就是決定怎樣實(shí)現(xiàn)此系統(tǒng)。在本章中,將會(huì)對(duì)系統(tǒng)應(yīng)該具有的所有功能進(jìn)行總結(jié),按權(quán)限的不同分為管理員與注冊(cè)用戶(hù),然后將所有功能
46、劃分成幾個(gè)功能模塊,最后對(duì)系統(tǒng)的運(yùn)作流程進(jìn)行設(shè)計(jì)。</p><p> 3.1 系統(tǒng)功能描述</p><p> 管理員收集到圖書(shū)信息后,從后臺(tái)登錄系統(tǒng)。</p><p> 管理員對(duì)圖書(shū)類(lèi)別進(jìn)行管理:新增圖書(shū)類(lèi)別、修改與刪除已有圖書(shū)類(lèi)別、查看此類(lèi)別的圖書(shū)。</p><p> 管理員添加新圖書(shū)信息。</p><p>
47、 管理員對(duì)圖書(shū)進(jìn)行管理:查看與修改圖書(shū)信息、刪除圖書(shū)。</p><p> 管理員按書(shū)名或作者或出版社查詢(xún)圖書(shū)。</p><p> 管理員查看用戶(hù)信息,并能對(duì)用戶(hù)進(jìn)行刪除。</p><p> 管理員查看訂單詳細(xì)信息,并將訂單付款狀態(tài)改為“已付款”,發(fā)貨狀態(tài)改為“已發(fā)貨”。</p><p> 管理員安全退出登錄。</p>
48、<p> 非用戶(hù)登錄網(wǎng)站,顯示用戶(hù)登錄窗口、最新圖書(shū)列表,查看圖書(shū)詳細(xì)信息,訂購(gòu)時(shí)提醒用戶(hù)先登錄。</p><p> 非用戶(hù)進(jìn)入用戶(hù)注冊(cè)頁(yè)面,填寫(xiě)用戶(hù)基本信息,注冊(cè)成用戶(hù)。</p><p> 用戶(hù)按書(shū)名或作者或出版社搜索圖書(shū)。</p><p> 用戶(hù)訂購(gòu)圖書(shū),將圖書(shū)放到購(gòu)物車(chē)中。</p><p> 用戶(hù)查看購(gòu)物車(chē)中所定圖書(shū)
49、的詳細(xì)信息,</p><p> 用戶(hù)對(duì)購(gòu)物車(chē)中的圖書(shū)進(jìn)行下訂單操作。</p><p> 用戶(hù)可查看所有的訂單信息,了解管理員是否收到匯款、是否發(fā)貨。</p><p> 用戶(hù)查看網(wǎng)站的聯(lián)系方式。</p><p> 用戶(hù)查看網(wǎng)站的訂購(gòu)流程。</p><p><b> 用戶(hù)安全退出登錄。</b>
50、;</p><p><b> 3.2 系統(tǒng)用例圖</b></p><p> 本系統(tǒng)的用例圖如圖3.1如下。</p><p> 由用例圖可知,系統(tǒng)中的角色可以劃分為兩類(lèi):</p><p> 管理員:擁有所有的權(quán)限,可以對(duì)圖書(shū)、訂單、用戶(hù)進(jìn)行管理</p><p> 用戶(hù):用戶(hù)注冊(cè)、用戶(hù)登錄、
51、瀏覽網(wǎng)站圖書(shū)信息列表、搜索圖書(shū)、查詢(xún)圖書(shū)信息、任意購(gòu)買(mǎi)圖書(shū)、查看購(gòu)物車(chē)中的圖書(shū)、刪除購(gòu)物車(chē)中的圖書(shū)、提交購(gòu)買(mǎi)的圖書(shū)、查看訂單的信息。</p><p> 圖3.1 系統(tǒng)用例圖</p><p> 3.3 功能模塊劃分圖</p><p> 圖3.2 功能模塊劃分圖</p><p> 下面對(duì)功能模塊進(jìn)行詳細(xì)描述:</p><
52、;p><b> 用戶(hù)注冊(cè)登錄</b></p><p> 該模塊實(shí)現(xiàn)用戶(hù)的注冊(cè)登錄。用戶(hù)登錄時(shí),系統(tǒng)檢查用戶(hù)是否已經(jīng)注冊(cè)。若已經(jīng)注冊(cè),用戶(hù)登錄成功,若未注冊(cè),系統(tǒng)提醒用戶(hù)注冊(cè)。</p><p><b> 圖書(shū)查詢(xún)</b></p><p> 該模塊實(shí)現(xiàn)圖書(shū)書(shū)目信息的查詢(xún),提供各種不同的查詢(xún)條件下的模糊查詢(xún),方便用
53、戶(hù)能夠迅速地搜索到所需的圖書(shū)。此外,在用戶(hù)選擇了某個(gè)書(shū)目以后,可以顯示該書(shū)目的詳細(xì)信息,讓用戶(hù)了解此書(shū)的情況,方便用戶(hù)做出正確的選擇。</p><p><b> 查看用戶(hù)訂單</b></p><p> 該模塊實(shí)現(xiàn)已經(jīng)登錄的此用戶(hù)的所有訂單的顯示。</p><p><b> 購(gòu)物車(chē)管理</b></p>&
54、lt;p> 對(duì)應(yīng)于每個(gè)進(jìn)入該書(shū)店系統(tǒng)的用戶(hù)購(gòu)物車(chē),主要管理用戶(hù)所選擇書(shū)目的信息。在用戶(hù)沒(méi)有退出系統(tǒng)之前或者沒(méi)有提交之前,一直保持著用戶(hù)所選擇的書(shū)目信息,提交之后即生成訂單。</p><p><b> 管理員登錄</b></p><p> 該模塊實(shí)現(xiàn)管理員的登錄。</p><p><b> 圖書(shū)信息管理</b>
55、</p><p> 該模塊實(shí)現(xiàn)管理員對(duì)圖書(shū)的管理。管理員將圖書(shū)分類(lèi),可以對(duì)某類(lèi)圖書(shū)進(jìn)行查看、增加此類(lèi)圖書(shū)、修改類(lèi)別名稱(chēng)、刪除某類(lèi)別;也可以對(duì)圖書(shū)詳細(xì)信息進(jìn)行查看、修改,直接刪除此圖書(shū)。</p><p><b> 用戶(hù)管理</b></p><p> 用戶(hù)注冊(cè)及身份的認(rèn)證。因?yàn)橐獙?shí)際操作送貨上門(mén),因此要收集到用戶(hù)的詳細(xì)信息。</p>
56、;<p><b> 訂單管理</b></p><p> 顯示訂單列表信息,根據(jù)實(shí)際的情況,管理員可以對(duì)訂單的狀態(tài)進(jìn)行修改。用戶(hù)在前臺(tái)可以查看自己的訂單列表信息以及詳細(xì)信息。</p><p> 3.4 系統(tǒng)流程分析</p><p> 系統(tǒng)流程是在計(jì)算機(jī)事務(wù)處理應(yīng)用進(jìn)行系統(tǒng)分析時(shí)常用的描述方法,它描述了計(jì)算機(jī)事務(wù)處理中從數(shù)據(jù)輸
57、入開(kāi)始到獲得輸出為止[7]。簡(jiǎn)單說(shuō)就是用戶(hù)在使用系統(tǒng)時(shí)的工作過(guò)程。多用戶(hù)系統(tǒng)的工作流程都有登錄模塊,對(duì)用戶(hù)的身份進(jìn)行認(rèn)證。 </p><p> 通過(guò)對(duì)系統(tǒng)進(jìn)行流程分析,可以對(duì)系統(tǒng)形成完整而全面的認(rèn)識(shí),能夠清晰地對(duì)工作流程進(jìn)行了解。</p><p> 在此系統(tǒng)中,分為兩個(gè)流程:前臺(tái)流程和后臺(tái)流程。前臺(tái)流程即是用戶(hù)流程,后臺(tái)流程即是管理員流程。用戶(hù)和管理員都要經(jīng)過(guò)身份認(rèn)證程序,不同
58、之處是用戶(hù)不經(jīng)過(guò)身份認(rèn)證程序也能進(jìn)行部分操作,而管理員必須經(jīng)過(guò)身份認(rèn)證程序才能夠進(jìn)行操作。另一不同之處是用戶(hù)可以注冊(cè),而管理員不可以注冊(cè)。</p><p> 從前臺(tái)流程圖(如圖3.3)中可以看出,用戶(hù)一開(kāi)始可以使用搜索或者查看圖書(shū)功能,在搜索功能中可以進(jìn)行多次搜索,在訂購(gòu)圖書(shū)過(guò)程中新用戶(hù)需要經(jīng)過(guò)一次注冊(cè)和登錄才可以進(jìn)入購(gòu)物車(chē),在購(gòu)物車(chē)中可以添加多本圖書(shū)之后才下訂單。</p><p>
59、圖3.3 前臺(tái)流程分析圖</p><p> 圖3.4 后臺(tái)流程分析圖</p><p> 從后臺(tái)流程圖(如圖3.4)中可以看出,管理員一開(kāi)始必須經(jīng)過(guò)身份認(rèn)證,否則無(wú)法進(jìn)行任何操作,管理員可以對(duì)圖書(shū)分類(lèi)、圖書(shū)、用戶(hù)、訂單進(jìn)行管理,進(jìn)行相應(yīng)的詳細(xì)操作。進(jìn)行完所有操作后,即可退出系統(tǒng)。</p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p&g
60、t;<p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)的各個(gè)表以及它們之間的關(guān)系并建立數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)是為用戶(hù)和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效的運(yùn)行環(huán)境。在本章中,將會(huì)根據(jù)數(shù)據(jù)庫(kù)的需求分析畫(huà)出系統(tǒng)E-R圖,根據(jù)E-R圖得出關(guān)系模型,此時(shí),表的結(jié)構(gòu)已經(jīng)非常清楚了,可以設(shè)計(jì)出所有表以及建立腳本,最后介紹數(shù)據(jù)庫(kù)的連接訪問(wèn)。</p><p> 4.1 數(shù)據(jù)庫(kù)需求分析</p><p&g
61、t; 根據(jù)本系統(tǒng)的需求,設(shè)計(jì)對(duì)應(yīng)的數(shù)據(jù)表及功能如下:</p><p> 圖書(shū)基本信息表:存放網(wǎng)上書(shū)店所銷(xiāo)售的圖書(shū)的基本信息。</p><p> 圖書(shū)分類(lèi)信息表:存放網(wǎng)上書(shū)店所提供圖書(shū)分類(lèi)的信息。</p><p> 用戶(hù)基本信息表:存放網(wǎng)上書(shū)店用戶(hù)的基本信息。</p><p> 管理員基本信息表:存放網(wǎng)上書(shū)店管理員的基本信息。<
62、/p><p> 訂單基本信息表:存放網(wǎng)上書(shū)店訂單的基本信息。</p><p> 訂單詳細(xì)信息表:存放網(wǎng)上書(shū)店訂單的詳細(xì)信息。</p><p> 根據(jù)以上的分析,確定出本系統(tǒng)的實(shí)體有:</p><p> 用戶(hù)實(shí)體:存放用戶(hù)的信息。</p><p> 管理員實(shí)體:存放管理員的信息。</p><p&
63、gt; 圖書(shū)實(shí)體:存放圖書(shū)的信息。</p><p> 圖書(shū)類(lèi)別實(shí)體:存放圖書(shū)類(lèi)別的信息。其與圖書(shū)實(shí)體的對(duì)應(yīng)關(guān)系為一對(duì)多。</p><p> 訂單實(shí)體:存放訂單的信息。其與用戶(hù)實(shí)體的對(duì)應(yīng)關(guān)系為一對(duì)一。</p><p> 訂單明細(xì)實(shí)體:存放訂單明細(xì)的信息。其與訂單實(shí)體的關(guān)系為多對(duì)一;與圖書(shū)實(shí)體的關(guān)系為多對(duì)一。</p><p> 4.2
64、系統(tǒng)E-R圖</p><p> 概念模型是按用戶(hù)的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫(kù)設(shè)計(jì),不涉及信息在計(jì)算機(jī)系統(tǒng)中的表示,只是用來(lái)描述特定組織所關(guān)心的信息結(jié)構(gòu)。這類(lèi)模型強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,概念應(yīng)該簡(jiǎn)單、清晰,易于用戶(hù)理解,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶(hù)之間進(jìn)行交流的工具。最為著名和使用最為廣泛的是E-R圖法[8]。</p><p> 本系統(tǒng)E-R圖如圖4.1所示。</p>&
65、lt;p> 4.3 系統(tǒng)E-R圖向關(guān)系模型的轉(zhuǎn)換</p><p> 將圖 E-R圖轉(zhuǎn)化成如下關(guān)系模型</p><p> 用戶(hù)(用戶(hù)ID,用戶(hù)名,用戶(hù)密碼,用戶(hù)真名,電話(huà),地址,電子郵件,注冊(cè)時(shí)間)</p><p> 管理員(管理員名,管理員密碼)</p><p> 圖書(shū)(圖書(shū)ID,圖書(shū)類(lèi)別ID,圖書(shū)名,圖書(shū)價(jià)格,圖書(shū)銷(xiāo)售價(jià)格,
66、出版社,圖書(shū)作者,圖書(shū)內(nèi)容目錄,圖書(shū)描述,入庫(kù)時(shí)間)</p><p> 圖書(shū)類(lèi)別(圖書(shū)類(lèi)別ID,圖書(shū)類(lèi)別名稱(chēng))</p><p> 訂單(訂單ID,用戶(hù)ID,提交訂單時(shí)間,總金額,訂單備注,是否付款,是否發(fā)貨)</p><p> 訂單明細(xì)(唯一編號(hào),訂單ID,圖書(shū)ID,數(shù)量)</p><p> 圖4.1 在線(xiàn)書(shū)店系統(tǒng)E-R圖</p
67、><p> 4.4 數(shù)據(jù)庫(kù)中表的設(shè)計(jì)</p><p> 通過(guò)上面的關(guān)系模型,表的數(shù)量和結(jié)構(gòu)已變著非常清晰,在MySQL中建立如下6個(gè)表。</p><p> 表4-1 管理員基本信息表adminuser</p><p> 表4-2 用戶(hù)基本信息表user</p><p> 表4-3 圖書(shū)基本信息表bookinfo&
68、lt;/p><p> 表4-4 訂單基本信息表orderinfo</p><p> 表4-5 圖書(shū)分類(lèi)基本信息表category</p><p> 表4-6 訂單明細(xì)信息表orderdetail</p><p> 4.5 數(shù)據(jù)庫(kù)中表的建立腳本</p><p> 在基本表的結(jié)構(gòu)確定后,就可以在MySQL中完成數(shù)據(jù)表
69、的創(chuàng)建工作,下面給出建立對(duì)應(yīng)數(shù)據(jù)表的SQL腳本。</p><p> 管理員基本信息表,代碼如下:</p><p> CREATE TABLE `adminuser` (</p><p> `adminuser` varchar(16) NOT NULL DEFAULT '',</p><p> `adminpass`
70、varchar(16) NOT NULL DEFAULT '',</p><p> PRIMARY KEY (`adminuser`)</p><p> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;</p><p> 用戶(hù)基本信息表,代碼如下:</p><p> CREATE TABL
71、E `user` (</p><p> ` userid ` int(10) unsigned NOT NULL AUTO_INCREMENT,</p><p> `loginname` varchar(20) NOT NULL DEFAULT '',</p><p> `realname` varchar(20) NOT NULL DEFAU
72、LT '',</p><p> `password` varchar(16) NOT NULL DEFAULT '',</p><p> `phone` varchar(16) NOT NULL DEFAULT '',</p><p> `address` varchar(150) NOT NULL DEFAUL
73、T '',</p><p> `email` varchar(50) NOT NULL DEFAULT '',</p><p> `regtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',</p><p> PRIMARY KEY (`id`)</p
74、><p> ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=gb2312;</p><p> 圖書(shū)基本信息表,代碼如下:</p><p> CREATE TABLE `bookinfo` (</p><p> ` bookid ` int(10) unsigned NOT NULL AU
75、TO_INCREMENT,</p><p> `categoryid` int(10) unsigned NOT NULL DEFAULT '0',</p><p> `name` varchar(100) NOT NULL DEFAULT '',</p><p> `price` float NOT NULL DEFAULT
76、'0',</p><p> `saleprice` float NOT NULL DEFAULT '0',</p><p> `press` varchar(50) NOT NULL DEFAULT '',</p><p> `author` varchar(50) NOT NULL DEFAULT '&
77、#39;,</p><p> `content` text NOT NULL,</p><p> `descript` text NOT NULL,</p><p> `regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',</p><p> PRIMARY
78、KEY (`id`)</p><p> ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=gb2312;</p><p> 訂單信息基本表,代碼如下:</p><p> CREATE TABLE `orderinfo` (</p><p> ` orderid ` varchar(32
79、) NOT NULL DEFAULT '',</p><p> `userid` int(10) unsigned NOT NULL DEFAULT '0',</p><p> `submittime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',</p><p>
80、; `totalprice` float NOT NULL DEFAULT '0',</p><p> `content` varchar(200) CHARACTER SET gbk DEFAULT NULL,</p><p> `ispay` int(10) unsigned NOT NULL DEFAULT '0',</p><
81、;p> `isdeliver` int(10) unsigned NOT NULL DEFAULT '0',</p><p> PRIMARY KEY (`id`)</p><p> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;</p><p> 圖書(shū)分類(lèi)基本信息表,代碼如下:</p>&
82、lt;p> CREATE TABLE `category` (</p><p> ` categoryid ` int(10) unsigned NOT NULL AUTO_INCREMENT,</p><p> `categoryname` varchar(50) NOT NULL DEFAULT '',</p><p> PRIMA
83、RY KEY (`id`)</p><p> ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gb2312;</p><p> 訂單明細(xì)信息表,代碼如下:</p><p> CREATE TABLE `orderdetail` (</p><p> `id` int(10) unsig
84、ned NOT NULL AUTO_INCREMENT,</p><p> `orderid` varchar(32) CHARACTER SET gbk NOT NULL DEFAULT '',</p><p> `bookid` int(10) unsigned NOT NULL DEFAULT '0',</p><p>
85、`amout` int(10) unsigned NOT NULL DEFAULT '0',</p><p> PRIMARY KEY (`id`)</p><p> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 COMMENT='InnoDB free: 4096 kB';</p><p><
86、;b> 4.6 數(shù)據(jù)庫(kù)訪問(wèn)</b></p><p> 用Java語(yǔ)言編寫(xiě)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序稱(chēng)為純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。JDBC提供的API通過(guò)將純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序轉(zhuǎn)換為DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))所使用的專(zhuān)用協(xié)議來(lái)實(shí)現(xiàn)和特定的DBMS交互信息,簡(jiǎn)單地說(shuō),JDBC可以調(diào)用本地的純Java驅(qū)動(dòng)程序和相應(yīng)的數(shù)據(jù)庫(kù)建立連接,如圖4.2所示。</p><p> 圖4.2
87、使用純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序</p><p> 使用純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序方式和數(shù)據(jù)庫(kù)建立連接需要經(jīng)過(guò)兩個(gè)步驟:</p><p> 1. 加載純Java驅(qū)動(dòng)程序</p><p> 目前,許多數(shù)據(jù)庫(kù)廠商都提供了自己相應(yīng)的純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。當(dāng)使用純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù)時(shí),必須要保證連接數(shù)據(jù)庫(kù)的應(yīng)用程序所駐留的計(jì)算機(jī)上安裝有相應(yīng)DBMS提供的
88、純Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。MySQL的驅(qū)動(dòng)程序名為MySQLConnector/J,在本系統(tǒng)中其文件名為mysql-connector-java-3.0.16-ga-bin.jar。</p><p> 應(yīng)用程序加載MySQL驅(qū)動(dòng)程序代碼如下:</p><p> try { jdbc.driverClassName=com.mysql.jdbc.Driver;</p>&l
89、t;p><b> }</b></p><p> Catch (Exception e) {}</p><p> 2. 和指定的數(shù)據(jù)庫(kù)建立連接:</p><p> 和MySQL數(shù)據(jù)庫(kù)建立連接的代碼如下:</p><p> try{ jdbc.url=jdbc:mysql://localhost/books
90、tore?characterEncoding=gb2312;</p><p> jdbc.username=root;</p><p> jdbc.password=root;</p><p> con=DriverManager.getConnection(url,username,password);</p><p><b&g
91、t; }</b></p><p> Catch (Exception e) {}</p><p> 應(yīng)用程序一旦和數(shù)據(jù)庫(kù)建立連接,就可以和該數(shù)據(jù)庫(kù)中的表交互信息,比如查詢(xún)、修改、更新表中的記錄[9]。</p><p><b> 部分模塊功能實(shí)現(xiàn)</b></p><p> 對(duì)系統(tǒng)進(jìn)行完總體設(shè)計(jì)之后,再
92、對(duì)每個(gè)模塊進(jìn)行詳細(xì)設(shè)計(jì)是非常必要的,這樣可以更好更合理的開(kāi)發(fā)系統(tǒng)。各個(gè)模塊可以獨(dú)立進(jìn)行設(shè)計(jì),從而使所有模塊同時(shí)進(jìn)行開(kāi)發(fā),大大縮短了開(kāi)發(fā)時(shí)間。所有模塊開(kāi)發(fā)完后,最終構(gòu)成一個(gè)完整的系統(tǒng)。在本章中,將詳細(xì)講解圖書(shū)查詢(xún)模塊和圖書(shū)購(gòu)買(mǎi)模塊的設(shè)計(jì),將圖書(shū)購(gòu)買(mǎi)模塊分為將圖書(shū)加入購(gòu)物車(chē)設(shè)計(jì)和購(gòu)物車(chē)管理設(shè)計(jì)兩部分。</p><p> 5.1 圖書(shū)查詢(xún)?cè)O(shè)計(jì)</p><p> 在此模塊中,用戶(hù)可以按照書(shū)名或
93、作者或出版社進(jìn)行模糊查詢(xún)。</p><p> 在主頁(yè)面中,在導(dǎo)航欄菜單中設(shè)計(jì)了一個(gè)搜索圖書(shū)的功能。這個(gè)功能是為了使得用戶(hù)較為精確地定位他們想要購(gòu)買(mǎi)和查看的圖書(shū)。因此,設(shè)計(jì)一個(gè)對(duì)應(yīng)此功能的搜索頁(yè)面及搜索結(jié)果頁(yè)面。設(shè)計(jì)的頁(yè)面如圖5.1所示。</p><p> 圖5.1 搜索圖書(shū)頁(yè)面</p><p> 在這個(gè)頁(yè)面中,定義了三個(gè)對(duì)話(huà)框,分別是書(shū)名、作者、出版社。通過(guò)輸
94、入這三個(gè)條件來(lái)精確定位索要搜索的圖書(shū)。例如,我們?cè)谏厦娴乃阉黜?yè)面中的對(duì)應(yīng)書(shū)名條件欄中輸入“考研”查詢(xún)條件,即為查詢(xún)書(shū)名信息中包含“考研”字樣的所有圖書(shū)信息。搜索后的結(jié)果頁(yè)面如圖5.2所示。</p><p> 圖5.2 搜索結(jié)果頁(yè)面</p><p> 在這個(gè)頁(yè)面頭部顯示搜索到相關(guān)圖書(shū)的數(shù)量,并且列出搜索出的圖書(shū)信息列表。在操作欄,列出“查看此書(shū)”、“訂購(gòu)”這兩個(gè)操作。“查看此書(shū)”用來(lái)顯示
95、選中的圖書(shū)的詳細(xì)信息,“訂購(gòu)”則用來(lái)加入購(gòu)物車(chē)。</p><p> 在查詢(xún)的頁(yè)面中,提交查詢(xún)的時(shí)候觸發(fā)的是searchResult.do,此操作用一個(gè)SimpleFormController來(lái)處理。具體是利用searchBookinfoFormController類(lèi)的onSubmit()的方法來(lái)進(jìn)行處理。其分析如下:</p><p> Controller層 searchBookinf
96、oFormController類(lèi)的onSubmit()方法來(lái)響應(yīng)表單提交時(shí)候所進(jìn)行的處理。在這個(gè)處理過(guò)程中,首先將表單的內(nèi)容進(jìn)行對(duì)象類(lèi)型轉(zhuǎn)換,將其轉(zhuǎn)換為Bookinfo對(duì)象。再根據(jù)Service層的findSpecBook()方法,通過(guò)Bookinfo對(duì)象參數(shù)進(jìn)行查詢(xún)。查詢(xún)結(jié)果返回一個(gè)List對(duì)象,取得這個(gè)List對(duì)象的大小,作為查詢(xún)結(jié)果數(shù)目的顯示,然后將相關(guān)的信息放入一個(gè)HashMap對(duì)象,傳入搜索結(jié)果顯示的頁(yè)面。</p>
97、<p> Service層 Service層用到的是BookinfoService接口的findSpecBook()方法,這里借用接口BookinfoDao中的findSpecBook()方法,同樣是利用一個(gè)Bookinfo對(duì)象作為參數(shù)傳入。</p><p> 5.2 將圖書(shū)加入購(gòu)物車(chē)設(shè)計(jì)</p><p> 在此模塊中,用戶(hù)點(diǎn)擊“訂購(gòu)”,就可將圖書(shū)加入到購(gòu)物車(chē)中。<
98、;/p><p> 當(dāng)用戶(hù)登錄以后,就可以購(gòu)買(mǎi)圖書(shū)。但是當(dāng)用戶(hù)未登錄的時(shí)候,能夠查看到圖書(shū)的信息列表,并且也能夠點(diǎn)擊“訂購(gòu)”操作。因而,在設(shè)計(jì)的時(shí)候要考慮到這種情況,當(dāng)用戶(hù)還未登錄的時(shí)候,點(diǎn)擊“訂購(gòu)”操作時(shí),提示用戶(hù)登錄,如圖5.3所示。</p><p> 圖5.3 未登錄時(shí)添加失敗提示頁(yè)面</p><p> 這里的判斷邏輯設(shè)計(jì)主要是通過(guò)判斷Session中是否存在
99、用戶(hù)id的信息來(lái)進(jìn)行處理的。此外,還有一種情況要考慮,當(dāng)用戶(hù)登錄后購(gòu)買(mǎi)圖書(shū),添加了某一條圖書(shū)信息,接著又繼續(xù)添加同一條圖書(shū)信息,這時(shí)要提示用戶(hù)不能重復(fù)添加圖書(shū)信息,如圖5.4所示。</p><p> 圖5.4 添加已經(jīng)添加過(guò)的圖書(shū)失敗提示頁(yè)面</p><p> 這里的判斷邏輯設(shè)計(jì)是通過(guò)遍歷Session中已經(jīng)添加的圖書(shū)信息列表,判斷是否存在要繼續(xù)添加的圖書(shū)信息。當(dāng)一切正常進(jìn)行,添加圖書(shū)
100、信息成功后,進(jìn)入我的購(gòu)物車(chē)列表信息頁(yè)面,如圖5.5所示。</p><p> 圖5.5 我的購(gòu)物車(chē)頁(yè)面</p><p> 在我的購(gòu)物車(chē)的頁(yè)面中,主要的操作有:查看、刪除、下訂單。查看表示查看此圖書(shū)的詳細(xì)信息;刪除表示刪除某一條購(gòu)物車(chē)記錄;下訂單則是提交當(dāng)前所選的圖書(shū)列表及其數(shù)量的信息,形成訂單。下面具體介紹將圖書(shū)加入購(gòu)物車(chē)操作時(shí)的邏輯分析設(shè)計(jì)。</p><p>
101、 1. Controller層 在添加圖書(shū)到購(gòu)物車(chē)時(shí)候,觸發(fā)buyBook.do操作,這個(gè)操作是由BookinfoController類(lèi)中的buyBookHandler()方法來(lái)進(jìn)行處理的。在此方法中,首先是得到圖書(shū)的id信息,然后通過(guò)request.getSession().getAttribute(StaticData.SHOPCART_KEY)操作得到Session中的購(gòu)物車(chē)信息,如果是添加第一個(gè)圖書(shū)信息,則構(gòu)造購(gòu)物車(chē)對(duì)象,接著
102、判斷Session中是否有id這個(gè)對(duì)象,如果沒(méi)有,則返回到提示用戶(hù)登錄的頁(yè)面;如果有,判斷購(gòu)物車(chē)對(duì)象中是否已經(jīng)含有了要添加的圖書(shū)信息,這里主要通過(guò)Service層的BookinfoService接口中的hasTheBookinfo()方法來(lái)進(jìn)行判斷,傳入的參數(shù)是購(gòu)物車(chē)對(duì)象和圖書(shū)的id,如果判斷有要添加的圖書(shū)對(duì)象信息,則返回到提示用戶(hù)此圖書(shū)已經(jīng)添加的頁(yè)面。一切都順利進(jìn)行,則將此圖書(shū)信息進(jìn)行初始化,然后添加到購(gòu)物車(chē)對(duì)象中,并將購(gòu)物車(chē)對(duì)象設(shè)置
103、到Session中,并返回到我的購(gòu)物車(chē)的主頁(yè)面。</p><p> 2. Service層 利用BookinfoService接口中的HasTheBookinfo()方法判斷購(gòu)物車(chē)中是否含有了要添加的圖書(shū)信息。對(duì)傳入的購(gòu)物車(chē)對(duì)象ArrayList進(jìn)行遍歷,判斷其中對(duì)象的id信息是否與要添加的圖書(shū)id相等。如果相等,返回true;否則,返回false。同時(shí),用BoolinfoService接口的getBooki
104、nfo()方法得到Bookinfo對(duì)象。</p><p> 5.3 購(gòu)物車(chē)管理設(shè)計(jì)</p><p> 在購(gòu)物的過(guò)程中,將購(gòu)物車(chē)的信息存放在Session里面。這樣,用戶(hù)在整個(gè)過(guò)程中,都能夠訪問(wèn)到Session里面的購(gòu)物車(chē)信息,也就是對(duì)購(gòu)物車(chē)的信息進(jìn)行了共享,不論是否關(guān)閉了購(gòu)物車(chē)的頁(yè)面,購(gòu)物車(chē)的信息始終存放在Session里面,并且未被寫(xiě)入數(shù)據(jù)庫(kù)中。當(dāng)進(jìn)行下訂單處理的時(shí)候,購(gòu)物車(chē)的信息才
105、被寫(xiě)入數(shù)據(jù)庫(kù)中,同時(shí)將購(gòu)物車(chē)對(duì)象設(shè)置為null,這樣即達(dá)到了提交訂單的效果,又能夠把購(gòu)物車(chē)中的信息清空,使得用戶(hù)可以再次購(gòu)物。</p><p> 在進(jìn)行購(gòu)物車(chē)管理的時(shí)候,可以進(jìn)行刪除圖書(shū)信息處理,這個(gè)過(guò)程是將購(gòu)物車(chē)對(duì)象中要?jiǎng)h除的圖書(shū)對(duì)象刪除,并且重新設(shè)置購(gòu)物車(chē)對(duì)象信息到Session里面,接著返回到購(gòu)物車(chē)的主頁(yè)面。刪除的頁(yè)面如圖5.6所示。</p><p> 圖5.6 刪除購(gòu)物車(chē)中信息
106、的頁(yè)面</p><p> 在刪除圖書(shū)前,會(huì)有提示信息,單擊確定以后,即可刪除信息。單擊下訂單操作以后,即可提交購(gòu)物車(chē)的信息形成訂單,如圖5.7所示。</p><p> 圖5.7 訂單提交完成頁(yè)面</p><p> 在購(gòu)物車(chē)的實(shí)現(xiàn)頁(yè)面中,通過(guò)循環(huán),將從Session中得到的shoplist對(duì)象進(jìn)行循環(huán)處理,列出購(gòu)物車(chē)中的圖書(shū)信息列表。其中,在循環(huán)的過(guò)程中,設(shè)置一
107、個(gè)計(jì)數(shù)器count,累加所購(gòu)圖書(shū)的總金額。在操作欄中,設(shè)置一個(gè)刪除的鏈接,觸發(fā)一個(gè)帶參數(shù)book_id的delShopCart.do操作來(lái)刪除購(gòu)物車(chē)中的某條圖書(shū)信息。</p><p> 下面是具體的邏輯結(jié)構(gòu)分析:</p><p> 1. Controller層 用到BookinfoController類(lèi)中的兩個(gè)方法:delShopCartHandler()、updateShopCar
108、tHandler()。這里給出delShopCartHandler()的分析:首先是得到要?jiǎng)h除的圖書(shū)信息id,然后從Session中獲得購(gòu)物車(chē)對(duì)象信息,在購(gòu)物車(chē)對(duì)象中進(jìn)行循環(huán)遍歷,查找出要?jiǎng)h除的對(duì)象將之刪除,最后重新設(shè)置購(gòu)物車(chē)對(duì)象信息到Session中,并返回到購(gòu)物車(chē)頁(yè)面。</p><p> 此外,在提交購(gòu)物車(chē)信息,形成訂單的過(guò)程中,要用到AddOrderinfoFormController類(lèi)中的onSubmi
109、t()方法。在這個(gè)處理的過(guò)程中,不僅要把訂單的基本信息存入數(shù)據(jù)庫(kù)中,而且要將訂單的詳細(xì)信息也一并存入。首先得到表單提交的信息序列化后的對(duì)象,將之轉(zhuǎn)換成Orderinfo對(duì)象,并根據(jù)Service層接口的createOrderinfo()方法創(chuàng)建新的訂單基本信息。接著得到Session中的購(gòu)物車(chē)信息,將其中的每條記錄都轉(zhuǎn)化成Orderdetail對(duì)象,然后調(diào)用Service層的createOrderdetail()方法,創(chuàng)建訂單的詳細(xì)信息
110、。整個(gè)過(guò)程完成以后,將Session中的購(gòu)物車(chē)對(duì)象設(shè)置為空,以使得用戶(hù)可以繼續(xù)購(gòu)物,最后返回到訂單形成的頁(yè)面。</p><p> 2. Service層 其中的createOrderinfo()、createOrderdetail()為controller層服務(wù),其中的save()方法,用來(lái)保存各自的對(duì)象。</p><p> 5.4 系統(tǒng)運(yùn)行效果 </p><p&
111、gt; 在地址欄輸入本系統(tǒng)的地址:http://localhost:8080/bookstore以后,就可以進(jìn)入系統(tǒng)的用戶(hù)主頁(yè)面了,我設(shè)計(jì)的主頁(yè)面效果圖如圖5.8所示。</p><p> 圖5.8 用戶(hù)主頁(yè)面</p><p> 主頁(yè)面的的圖片是一個(gè)展開(kāi)的畫(huà)卷,充滿(mǎn)書(shū)香之氣。其分布是四部分:頭部、尾部、中左菜單欄、中右主頁(yè)面。上部為滾動(dòng)的歡迎語(yǔ)和導(dǎo)航菜單,這個(gè)菜單有四個(gè)部分:最新圖書(shū)、
112、搜索圖書(shū)、聯(lián)系我們、訂購(gòu)流程。尾部是關(guān)于版權(quán)的信息欄。中左的菜單欄在還未登錄的時(shí)候顯示的是用戶(hù)登錄框,包括登錄和新用戶(hù)注冊(cè)的功能。中右的主頁(yè)面顯示在線(xiàn)用戶(hù)正要操作的內(nèi)容,默認(rèn)的是顯示最新圖書(shū)列表。</p><p> 圖5.9 用戶(hù)登錄以后的頁(yè)面</p><p> 在圖5.9這個(gè)頁(yè)面中,有一個(gè)用戶(hù)信息欄,顯示用戶(hù)登錄以后的個(gè)人信息,中部有一個(gè)“購(gòu)物車(chē)”鏈接,用來(lái)查看已經(jīng)打算購(gòu)買(mǎi)的圖書(shū)的信
113、息。下部有一個(gè)“我的訂單的”鏈接,用戶(hù)可以查看所有的訂單,如圖5.10所示。</p><p> 圖5.10 用戶(hù)查看所有訂單的頁(yè)面</p><p> 圖5.11 管理員管理頁(yè)面</p><p> 圖5.11是管理員管理頁(yè)面,中間左邊是系統(tǒng)功能的菜單欄分區(qū),分為“圖書(shū)管理”“用戶(hù)管理”“訂單管理”,中間右邊是系統(tǒng)的主分區(qū),顯示管理員正要操作的內(nèi)容。</p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì)(論文)
- 網(wǎng)上書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)網(wǎng)上書(shū)店銷(xiāo)售系統(tǒng)
- 網(wǎng)上書(shū)店管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書(shū)店畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書(shū)店畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書(shū)店畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì)
- java畢業(yè)設(shè)計(jì)論文 網(wǎng)上購(gòu)物書(shū)店設(shè)計(jì)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----網(wǎng)上書(shū)店購(gòu)物系統(tǒng)
- 畢業(yè)設(shè)計(jì)---網(wǎng)上書(shū)店管理系統(tǒng)
- 網(wǎng)上書(shū)店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書(shū)店畢業(yè)論文---網(wǎng)上書(shū)店系統(tǒng)
- 網(wǎng)上書(shū)店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì) (2)
- 畢業(yè)設(shè)計(jì)----網(wǎng)上書(shū)店系統(tǒng)設(shè)計(jì) (2)
- 網(wǎng)上書(shū)店系統(tǒng)設(shè)計(jì)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論