




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Java的京東電商系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:近十多年來(lái),因?yàn)橐苿?dòng)互聯(lián)網(wǎng)發(fā)展迅猛,除了通常的查閱網(wǎng)頁(yè),搜索數(shù)據(jù)和發(fā)送電子郵件外,大多數(shù)國(guó)內(nèi)網(wǎng)民還將采用以下傳統(tǒng)功能,如購(gòu)物,電信,旅游和娛樂(lè)我逐漸習(xí)慣了互聯(lián)網(wǎng)。包括使用在線購(gòu)物在內(nèi)的新服務(wù)模式正在成為人們生活中一種重要的購(gòu)物形式?;ヂ?lián)網(wǎng)的發(fā)展迅猛,是網(wǎng)上購(gòu)物系統(tǒng)發(fā)展的基礎(chǔ)。除此之外,網(wǎng)絡(luò)購(gòu)物營(yíng)商環(huán)境也在逐漸的在改善。移動(dòng)互聯(lián)網(wǎng)設(shè)備(手機(jī),平板電腦)使互聯(lián)網(wǎng)用戶(hù)越來(lái)越多。付款和結(jié)算方式變得更加容易,快遞物流變得越來(lái)越順暢,相應(yīng)的法規(guī)和政策也越來(lái)越完善。近10年來(lái),網(wǎng)絡(luò)購(gòu)物對(duì)人們?cè)絹?lái)越有吸引力。從一開(kāi)始的,人們不理解人們對(duì)在線購(gòu)物的看法,從問(wèn)題到逐漸信任,從拒絕到逐漸接受和熟絡(luò)。關(guān)鍵詞:Java,網(wǎng)絡(luò)購(gòu)物
DesignandimplementationofJDe-commercesystembasedonJavaAbstract:Inthepasttenyears,becauseoftherapiddevelopmentofmobileInternet,inadditiontotheusualaccesstowebpages,searchdataandsende-mail,mostdomesticInternetuserswillalsousethefollowingtraditionalfunctions,suchasshopping,telecommunications,tourismandentertainment.IamgraduallyusedtotheInternet.Thenewservicemodeincludingonlineshoppingisbecominganimportantformofshoppinginpeople'slife.TherapiddevelopmentofInternetisthebasisofthedevelopmentofonlineshoppingsystem.Inaddition,onlineshoppingbusinessenvironmentisalsograduallyimproving.MobileInternetdevices(mobilephones,tabletcomputers)makemoreandmoreInternetusers.Paymentandsettlementmethodsbecomeeasier,expresslogisticsbecomemoreandmoresmooth,andthecorrespondinglawsandpoliciesbecomemoreandmoreperfect.Inthepast10years,onlineshoppinghasbecomemoreandmoreattractivetopeople.Fromthebeginning,peopledidn'tunderstandpeople'sviewsononlineshopping,fromproblemstotrust,fromrejectiontoacceptanceandfamiliarity.Keywords:Java,Onlineshopping目錄第1章系統(tǒng)概述 系統(tǒng)概述系統(tǒng)開(kāi)發(fā)背景2018年12月止,電子商務(wù)直接雇員(包括電子商務(wù)平臺(tái),初創(chuàng)公司,服務(wù)提供商,電子商務(wù)經(jīng)銷(xiāo)商等)人數(shù)已經(jīng)不止350萬(wàn),號(hào)碼(物流,市場(chǎng)營(yíng)銷(xiāo),培訓(xùn),直播等)已不止3000萬(wàn)。因此世界各國(guó)政府也采取了積極促進(jìn)電子商務(wù)產(chǎn)業(yè)發(fā)展的政策,從而提供了大量的就業(yè)機(jī)會(huì)和平臺(tái)。因?yàn)殡娮由虅?wù)行業(yè)的發(fā)展,經(jīng)濟(jì)地位也在逐漸升高,在這種情況下,本文設(shè)計(jì)并開(kāi)發(fā)了一個(gè)在線在線購(gòu)物系統(tǒng)。系統(tǒng)特點(diǎn)基于Java流行開(kāi)源技術(shù)構(gòu)建:使用業(yè)界流行的開(kāi)源技術(shù)搭建,框架本身也完全開(kāi)源,做到真正的技術(shù)開(kāi)發(fā)。基于SOA架構(gòu)設(shè)計(jì):以SOA架構(gòu)風(fēng)格構(gòu)建,具有清晰的模塊界限、服務(wù)獨(dú)立部署和技術(shù)多樣性的能力特點(diǎn)。滿(mǎn)足Web和分布式應(yīng)用開(kāi)發(fā):框架以適應(yīng)經(jīng)典的的MVC架構(gòu)和分布式大型應(yīng)用開(kāi)發(fā)為設(shè)計(jì)目標(biāo),兩種風(fēng)格的開(kāi)發(fā)和部署無(wú)縫切換。
項(xiàng)目開(kāi)發(fā)相關(guān)技術(shù)基礎(chǔ)Java語(yǔ)言Java是由Sun公司推出的一種高級(jí)的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,也是一種跨平臺(tái)的程序設(shè)計(jì)語(yǔ)言[1]。因?yàn)镴ava跨平臺(tái)的特性,所以可以兼容企業(yè)和Internet,Java是目前Internet中最受歡迎、最有影響力的編程語(yǔ)言之一[2]。利用Java語(yǔ)言編寫(xiě)的程序代碼在經(jīng)過(guò)編譯之后會(huì)轉(zhuǎn)換成Java字節(jié)碼,Java虛擬機(jī)(JVM)將會(huì)對(duì)這些字節(jié)碼進(jìn)行解釋和運(yùn)行[3]。編譯過(guò)后的字節(jié)碼將以機(jī)器碼的形式來(lái)保存,虛擬機(jī)可以把字節(jié)碼解釋成機(jī)器碼,最后在計(jì)算機(jī)上運(yùn)行。如圖2.1所示。圖2.1JAVA運(yùn)行過(guò)程MVC模式MVC是一種先進(jìn)的軟件開(kāi)發(fā)的設(shè)計(jì)模式,它把應(yīng)用程序分成三個(gè)核心模塊,模型層(Model)、視圖層(View)、控制器(Controller),它們各自處理自己的任務(wù),相互協(xié)作,實(shí)現(xiàn)Web系統(tǒng)的職能分工[4]。另外,MVC模式通過(guò)簡(jiǎn)化復(fù)雜性使程序的結(jié)構(gòu)更直觀,如圖2.2所示。圖2.2Java代碼的編譯以及運(yùn)行的過(guò)程SOA架構(gòu)設(shè)計(jì)SOA的服務(wù)的理念思想,本質(zhì)是一種業(yè)務(wù)和技術(shù)的完全分離,業(yè)務(wù)又能和技術(shù)自由的組合的思想。它達(dá)到了目前軟件設(shè)計(jì)思想的最高境界[6]。SOA架構(gòu)系統(tǒng)根據(jù)模塊分為幾個(gè)子系統(tǒng)。Spring概述Spring一個(gè)輕量級(jí)的Java開(kāi)發(fā)開(kāi)源框架。它的設(shè)計(jì)考慮到了開(kāi)發(fā)業(yè)務(wù)應(yīng)用程序的復(fù)雜性,簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)具有多個(gè)JavaSE/EE級(jí)別的多層開(kāi)源框架。Mybatis概述MyBatis是持久性級(jí)別的絕佳框架。封裝了JDBC數(shù)據(jù)庫(kù)的工作流,因此開(kāi)發(fā)人員僅需專(zhuān)注于SQL本身,而不必花費(fèi)精力進(jìn)行諸如注冊(cè)驅(qū)動(dòng)程序,創(chuàng)建連接,創(chuàng)建語(yǔ)句和設(shè)置參數(shù)指南,JDBC復(fù)雜過(guò)程代碼作為結(jié)果集檢索的處理。SpringMvc概述SpringMVC是功能強(qiáng)大且靈活的SpringWeb框架。借助注釋?zhuān)琒pringMVC提供了幾乎是POJO的開(kāi)發(fā)模型,并促進(jìn)了控制器的開(kāi)發(fā)和測(cè)試。JavaWeb開(kāi)發(fā)技術(shù)JavaWeb技術(shù)的廣泛使用,使得各種信息化系統(tǒng)越來(lái)越功能強(qiáng)大又便于用戶(hù)使用[9]。JavaWeb技術(shù)主要是指JSP/Servlet。本系統(tǒng)中使用Tomcat用作該系統(tǒng)上的Web服務(wù)器,本節(jié)介紹用于Web開(kāi)發(fā)的客戶(hù)端技術(shù)。JSP技術(shù)JSP技術(shù)使用Java作為腳本語(yǔ)言來(lái)為用戶(hù)HTTP請(qǐng)求提供服務(wù),并且可以與服務(wù)器上的其他Java程序一起處理復(fù)雜的業(yè)務(wù)請(qǐng)求,另外JSP可以方便存取可重用組件JavaBean,避免了重復(fù)的勞動(dòng),提高了效率[12]。Servlet技術(shù)JavaServlet技術(shù)為WEB開(kāi)發(fā)者提供了一種簡(jiǎn)便、可靠的機(jī)制來(lái)擴(kuò)展web服務(wù)器的功能和訪問(wèn)現(xiàn)有的事務(wù)系統(tǒng)[10]。Javascript技術(shù)盡管JavaScript被稱(chēng)為網(wǎng)站開(kāi)發(fā)的腳本語(yǔ)言,但是它在沒(méi)有瀏覽器的許多環(huán)境中也被使用。它的目的是與HTML、Javaapplet一起實(shí)現(xiàn)在一個(gè)WEB頁(yè)面中鏈接多個(gè)對(duì)象并能與客戶(hù)端動(dòng)態(tài)交互。[5]CSS技術(shù)CSS可以精確地在像素級(jí)別上控制網(wǎng)頁(yè)上元素的布局,支持幾乎所有字體大小樣式,并可以編輯對(duì)象和Web模板的樣式。當(dāng)樣式需要應(yīng)用于很多頁(yè)面時(shí),外部樣式表將是理想的選擇。[7]AJAX技術(shù)Ajax可以創(chuàng)建交互式,快速和動(dòng)態(tài)的Web應(yīng)用程序。通過(guò)與后臺(tái)服務(wù)器交換數(shù)據(jù),Ajax可以異步更新網(wǎng)站。在使用AJAX引擎后,用戶(hù)從感覺(jué)上幾乎所有的操作都會(huì)很快的響應(yīng)[11]。數(shù)據(jù)庫(kù)(Mysql)MySQL是數(shù)據(jù)庫(kù)的一種,MySQL是開(kāi)源的,因此任何人都可以根據(jù)通用公共許可證下載并根據(jù)需要進(jìn)行修改以進(jìn)行自定義。許多人認(rèn)為MySQL是無(wú)需事務(wù)處理即可管理內(nèi)容的最佳選擇。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)[8]。本章小結(jié)本章主要介紹了商城系統(tǒng)開(kāi)發(fā)過(guò)程中使用的一些相關(guān)技術(shù)堆棧,包括Java相關(guān)技術(shù),后臺(tái)開(kāi)發(fā)框架技術(shù)和模式,JavaWeb開(kāi)發(fā)技術(shù)以及MySQL數(shù)據(jù)庫(kù)。背景技術(shù)和開(kāi)發(fā)模型包括Spring技術(shù),Mybatis技術(shù),SpringMvc技術(shù),MVC模式和SOA體系結(jié)構(gòu)。JavaWeb使用JSP技術(shù),servlet技術(shù),CSS技術(shù),JavaScript技術(shù)和AJAX技術(shù)。這些技術(shù)被用來(lái)為項(xiàng)目的開(kāi)發(fā)奠定基礎(chǔ)。
系統(tǒng)整體設(shè)計(jì)系統(tǒng)功能需求及設(shè)計(jì)本設(shè)計(jì)的系統(tǒng)架構(gòu)為后臺(tái)系統(tǒng)和前臺(tái)系統(tǒng)共同組成,前臺(tái)系統(tǒng)展示的內(nèi)容通過(guò)后臺(tái)系統(tǒng)添加,后臺(tái)的系統(tǒng)功能由管理員使用,前臺(tái)的系統(tǒng)功能給網(wǎng)站用戶(hù)使用。如下圖3-1、圖3-2所示。圖3-1后臺(tái)系統(tǒng)架構(gòu)圖3-2前臺(tái)系統(tǒng)架構(gòu)商品管理模塊商品添加在此商品添加功能下,前臺(tái)商城系統(tǒng)中商品詳情頁(yè)信息的規(guī)格參數(shù)模板都能夠被管理,做增加、查詢(xún)、修改、刪除規(guī)格參數(shù)模板操作,便于商品詳情頁(yè)信息的規(guī)格參數(shù)管理,都設(shè)置完成后可以在添加商品中選擇需要的參數(shù)。商品查詢(xún)添加商品后,是可以在商品查詢(xún)界面中進(jìn)行查詢(xún)已添加的商品。網(wǎng)站內(nèi)容管理模塊可以在后臺(tái)商城系統(tǒng)中,對(duì)前臺(tái)商城系統(tǒng)首頁(yè)中的類(lèi)目信息、輪播內(nèi)容進(jìn)行管理,做增加、查詢(xún)信息操作。用戶(hù)模塊用戶(hù)注冊(cè)游客(未進(jìn)行登錄或注冊(cè)的買(mǎi)家用戶(hù))可以瀏覽商品、搜索商品,商品購(gòu)買(mǎi)的操作是不被允許的。買(mǎi)家用戶(hù)需先確認(rèn)注冊(cè)的信息,確認(rèn)用戶(hù)姓名和電子郵件格式是否有效后,再由系統(tǒng)確認(rèn)用戶(hù)的用戶(hù)名是否已存在,步驟都完成后即可注冊(cè)成功。用戶(hù)登錄注冊(cè)完成后,接下來(lái)的操作是輸入注冊(cè)成功的用戶(hù)信息來(lái)登錄商城系統(tǒng),系統(tǒng)根據(jù)輸入的登錄信息驗(yàn)證通過(guò)后,即登錄成功,買(mǎi)家用戶(hù)可以使用商品購(gòu)買(mǎi)、添加購(gòu)物車(chē)等功能操作。商品模塊商品搜索在前臺(tái)商城系統(tǒng)的首頁(yè)里的商品搜索的輸入框中,用戶(hù)在輸入框內(nèi)輸入與所要搜索的商品信息相關(guān)的關(guān)鍵字,系統(tǒng)通過(guò)集成的Solr搜索引擎,查詢(xún)搜索到買(mǎi)家用戶(hù)搜索的商品且展示。商品瀏覽在前臺(tái)商城系統(tǒng)首頁(yè)向登錄商城系統(tǒng)的用戶(hù)顯示了商品各式各樣信息,買(mǎi)家用戶(hù)進(jìn)入系統(tǒng)首頁(yè)后,點(diǎn)擊某一個(gè)商品分類(lèi),就可以瀏覽到點(diǎn)擊的分類(lèi)下的全部商品信息。買(mǎi)家用戶(hù)還可以通過(guò)搜索來(lái)瀏覽所搜索的商品信息。商品信息展示查看商品信息時(shí),買(mǎi)家用戶(hù)是可以在點(diǎn)擊中意的商品,此時(shí),系統(tǒng)會(huì)根據(jù)買(mǎi)家用戶(hù)點(diǎn)擊的連接,跳轉(zhuǎn)到具體的商品信息的WEB頁(yè)面。在具體的商品信息WEB頁(yè)面中,商品的具體信息是可以被查看的,比如商品外觀的介紹,商品具體的參數(shù),商品數(shù)量,買(mǎi)家用戶(hù)通過(guò)查看商品相信信息了解商品,決定是否購(gòu)買(mǎi)該商品。商品購(gòu)買(mǎi)在商品信息詳情頁(yè)面,買(mǎi)家用戶(hù)可以通過(guò)點(diǎn)擊“加入購(gòu)物車(chē)”,加入到購(gòu)物車(chē)后,在購(gòu)物車(chē)頁(yè)面進(jìn)行購(gòu)買(mǎi)該商品。購(gòu)物車(chē)模塊加入購(gòu)物車(chē)商品詳情頁(yè)中,加入購(gòu)物車(chē)的功能是包含在其中的,點(diǎn)擊加入購(gòu)物車(chē)功能按鈕,被用戶(hù)點(diǎn)擊的商品將加入到購(gòu)物車(chē)中。在購(gòu)物車(chē)的商品信息都會(huì)被存入數(shù)據(jù)庫(kù)中,買(mǎi)家用戶(hù)可以通過(guò)點(diǎn)擊“購(gòu)物車(chē)”小圖標(biāo),查看購(gòu)物車(chē)中的所有商品的信息。我的購(gòu)物車(chē)購(gòu)物車(chē)的意思是買(mǎi)家用戶(hù)的商品添加到購(gòu)物車(chē)清單的列表,點(diǎn)擊“購(gòu)物車(chē)”小圖標(biāo),在“購(gòu)物車(chē)”WEB頁(yè)面中,買(mǎi)家用戶(hù)可做CRUD的操作。結(jié)算結(jié)算操作的對(duì)象是成功添加到購(gòu)物車(chē)的商品。提交訂單點(diǎn)擊訂單按鈕后,即可講選中的商品信息提交到后臺(tái)處理返回訂單信息。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)概念模型設(shè)計(jì)概念數(shù)據(jù)庫(kù)的設(shè)計(jì),實(shí)際上是為了面向?qū)ο蠛蛿?shù)據(jù)庫(kù)相結(jié)合,更容易分析數(shù)據(jù)庫(kù)系統(tǒng),促進(jìn)數(shù)據(jù)庫(kù)設(shè)計(jì)者和用戶(hù)之間的通信。概念包括實(shí)體并聯(lián)系。在該購(gòu)買(mǎi)系統(tǒng)中,商品例如是其屬性包括商品ID的實(shí)體。商品的標(biāo)題,內(nèi)容描述和其他屬性。實(shí)體之間有一對(duì)一,一對(duì)多兩種種類(lèi)型的關(guān)聯(lián)。以下的實(shí)體E-R圖是該系統(tǒng)主要的實(shí)體。(1)商城購(gòu)物系統(tǒng)的“買(mǎi)家”實(shí)體的屬性有“買(mǎi)家”ID,“買(mǎi)家”名,“買(mǎi)家”密碼,“買(mǎi)家”手機(jī),“買(mǎi)家”郵箱,“買(mǎi)家”類(lèi)型,“買(mǎi)家”創(chuàng)建時(shí)間,“買(mǎi)家”更新時(shí)間。如下圖3-3所示。圖3-3用戶(hù)實(shí)體的E-R圖(2)商城系統(tǒng)前臺(tái)網(wǎng)站內(nèi)容實(shí)體的屬性有內(nèi)容ID,前臺(tái)網(wǎng)站內(nèi)容目錄ID,標(biāo)題,小標(biāo)題,標(biāo)題描述,存儲(chǔ)路徑,圖片1地址,圖片2地址,內(nèi)容,前臺(tái)網(wǎng)站內(nèi)容創(chuàng)建時(shí)間,前臺(tái)網(wǎng)站內(nèi)容更新時(shí)間。前臺(tái)網(wǎng)站內(nèi)容實(shí)體的E-R圖如下圖3-4所示圖3-4前臺(tái)網(wǎng)站內(nèi)容實(shí)體的E-R圖(3)商城系統(tǒng)前臺(tái)網(wǎng)站內(nèi)容目錄實(shí)體的屬性有前臺(tái)網(wǎng)站內(nèi)容目錄ID,父目錄ID,前臺(tái)網(wǎng)站內(nèi)容目錄名稱(chēng),狀態(tài),排序方式,是否是父級(jí)目錄,前臺(tái)網(wǎng)站內(nèi)容目錄創(chuàng)建時(shí)間,前臺(tái)網(wǎng)站內(nèi)容目錄更新時(shí)間。如下圖3-5所示圖3-5前臺(tái)網(wǎng)站內(nèi)容目錄實(shí)體的E-R圖數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)在網(wǎng)站購(gòu)物系統(tǒng)中,實(shí)體的關(guān)系模式主要有以下內(nèi)容:前臺(tái)網(wǎng)站內(nèi)容:內(nèi)容ID,前臺(tái)網(wǎng)站內(nèi)容目錄ID,標(biāo)題,小標(biāo)題,標(biāo)題描述,存儲(chǔ)路徑,圖片1地址,圖片2地址,內(nèi)容,前臺(tái)網(wǎng)站內(nèi)容創(chuàng)建時(shí)間,前臺(tái)網(wǎng)站內(nèi)容更新時(shí)間。前臺(tái)網(wǎng)站內(nèi)容目錄:前臺(tái)網(wǎng)站內(nèi)容目錄ID,父目錄ID,前臺(tái)網(wǎng)站內(nèi)容目錄名稱(chēng),狀態(tài),排序方式,是否是父級(jí)目錄,前臺(tái)網(wǎng)站內(nèi)容目錄創(chuàng)建時(shí)間,前臺(tái)網(wǎng)站內(nèi)容目錄更新時(shí)間。商品信息:ID,標(biāo)題,賣(mài)點(diǎn),價(jià)格,數(shù)量,條形碼,圖片地址,所屬目錄,狀態(tài),創(chuàng)建時(shí)間,更新時(shí)間。商品目錄:商品目錄ID,父目錄ID,目錄名稱(chēng),狀態(tài),排序方式,是否是父級(jí)目錄,商品目錄創(chuàng)建時(shí)間,商品目錄更新時(shí)間。商品詳情:商品主鍵ID,商品詳情,商品詳情創(chuàng)建時(shí)間,商品詳情更新時(shí)間。商品參數(shù):商品參數(shù)ID,商品ID,商品參數(shù)數(shù)據(jù),商品參數(shù)創(chuàng)建時(shí)間,商品參數(shù)更新時(shí)間。訂單:ID,昵稱(chēng),買(mǎi)家用戶(hù)ID,訂單總費(fèi)用,訂單創(chuàng)建時(shí)間,訂單關(guān)閉時(shí)間。訂單詳情:ID,商品主鍵,數(shù)量,標(biāo)題,單價(jià),總費(fèi)用,圖片路徑。“買(mǎi)家”表:“買(mǎi)家”ID,“買(mǎi)家”名,“買(mǎi)家”密碼,“買(mǎi)家”手機(jī),“買(mǎi)家”郵箱,“買(mǎi)家”創(chuàng)建時(shí)間,“買(mǎi)家”更新時(shí)間。數(shù)據(jù)庫(kù)物理設(shè)計(jì)在數(shù)據(jù)庫(kù)當(dāng)中,系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的一個(gè)重要部分是數(shù)據(jù)表。如下是該網(wǎng)站商城系統(tǒng)中數(shù)據(jù)庫(kù)中幾個(gè)重要的數(shù)據(jù)表設(shè)計(jì)的結(jié)構(gòu)。前臺(tái)網(wǎng)站內(nèi)容表為系統(tǒng)網(wǎng)站內(nèi)容動(dòng)態(tài)信息的數(shù)據(jù)庫(kù)表,用于存儲(chǔ)系統(tǒng)前臺(tái)網(wǎng)站頁(yè)面信息。如下表3-1所示。表3-1前臺(tái)網(wǎng)站內(nèi)容表字段名稱(chēng)字段類(lèi)型字段長(zhǎng)度是否可為空默認(rèn)值字段描述idbigint(20)20NO空主鍵IDcat_idbigint(20)20NO空目錄IDbiaotivarchar(200)200YES空標(biāo)題sub_biaotivarchar(100)100YES空副標(biāo)題biaoti_descvarchar(500)500YES空標(biāo)題描述urlvarchar(500)500YES空地址tu_pianvarchar(300)300YES空?qǐng)D1tu_pian2varchar(300)300YES空?qǐng)D2nei_rongtext一YES空內(nèi)容crt_datedatetime一YES空創(chuàng)建時(shí)間upd_datedatetime一YES空更新時(shí)間商品信息表為系統(tǒng)網(wǎng)站商品信息的數(shù)據(jù)庫(kù)表,用于存儲(chǔ)商品信息。如下表3-2所示。表3-2商品信息表字段名稱(chēng)字段類(lèi)型字段長(zhǎng)度是否可為空默認(rèn)值字段描述idbigint(20)20NO空主鍵IDbiaotivarchar(100)100NO空商品標(biāo)題sell_pointvarchar(500)500YES空商品賣(mài)點(diǎn)jia_gebigint(20)20NO空商品價(jià)格numint(10)10NO空商品數(shù)量tiao_mavarchar(30)30YES空商品條形碼tu_pianvarchar(500)500YES空商品圖片cidbigint(10)10NO空商品目錄IDzhuang_taitinyint(4)4NO1商品是否在銷(xiāo)售crt_datedatetime一NO空商品創(chuàng)建時(shí)間upd_datedatetime一NO空商品更新時(shí)間訂單表為系統(tǒng)網(wǎng)站用戶(hù)下的訂單信息數(shù)據(jù)庫(kù)表,用于存儲(chǔ)系統(tǒng)訂單的信息。如下表3-3所示。表3-3訂單表字段名稱(chēng)字段類(lèi)型字段長(zhǎng)度是否可為空默認(rèn)值字段描述idbigint(20)20NO空訂單主鍵IDbuyer_nickvarchar(50)50NO空昵稱(chēng)buyer_idbigint(20)20NO空買(mǎi)家用戶(hù)IDtotal_feebigint(50)50NO空訂單總費(fèi)用crt_date_timedatetime一NO空訂單創(chuàng)建時(shí)間closed_timedatetime一YES空訂單關(guān)閉時(shí)間系統(tǒng)界面設(shè)計(jì)系統(tǒng)頁(yè)面使用JSP提供的標(biāo)簽庫(kù)以及JavaScript,jQuery和CSS技術(shù)設(shè)計(jì)。JSP頁(yè)面包含主要用于轉(zhuǎn)換階段的說(shuō)明元素和腳本元素提供有關(guān)JSP頁(yè)面和腳本元素的信息,這些頁(yè)面和腳本元素允許JSP分離靜態(tài)和動(dòng)態(tài)內(nèi)容分離出來(lái)。使用JSP標(biāo)簽庫(kù)和CSS技術(shù)來(lái)設(shè)計(jì)頁(yè)面,JavaScript和jQuery技術(shù)提供的Web樣式為網(wǎng)站添加動(dòng)態(tài)功能,使設(shè)計(jì)的網(wǎng)站不僅具有出色的樣式,而且還適合于后臺(tái)系統(tǒng)數(shù)據(jù)交互。本章小結(jié)本章主要介紹該商城系統(tǒng)的系統(tǒng)功能需求、系統(tǒng)功能設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)界面設(shè)計(jì),通過(guò)文字、表格、圖片詳細(xì)描述了各部分的設(shè)計(jì)內(nèi)容。
系統(tǒng)實(shí)現(xiàn)系統(tǒng)框架實(shí)現(xiàn)該系統(tǒng)集成了Mybatis框架來(lái)對(duì)JDBC操作進(jìn)行了封裝,方便了對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。在perties中配置了數(shù)據(jù)庫(kù)連接信息,如圖4-1所示。在applicationContext-dao.xml中配置了Spring框架整合Mybatis配置信息,如圖4-2所示。圖4-1數(shù)據(jù)庫(kù)連接信息圖4-2Mybatis配置信息該系統(tǒng)集成了springmvc框架來(lái)對(duì)視圖層進(jìn)行了渲染。在springmvc.xml配置了視圖層配置相關(guān)信息,如下圖4-3所示。圖4-3springmvc配置信息網(wǎng)站商品管理模塊實(shí)現(xiàn)網(wǎng)站商品管理模塊主要有新增商品、查詢(xún)商品功能。用戶(hù)在模塊中新增所需要的商品。新增后可在商品列表中,查詢(xún)商品的信息。商品添加在界面上填寫(xiě)完表單后,通過(guò)AJAX的POST請(qǐng)求,把前臺(tái)界面的商品內(nèi)容信息提交到后臺(tái),在后臺(tái)中實(shí)現(xiàn)邏輯保存邏輯,并把提交的信息保存在數(shù)據(jù)庫(kù)中。如下圖4-4所示。圖4-4新增商品內(nèi)容填寫(xiě)界面邏輯代碼如下:spMapper.insert(tbSp);spDescMapper.insert(tbSpDesc);spParamSpMapper.insert(tbSpParamSp);商品查詢(xún)添加商品成功后,可在列表中查詢(xún)到商品的相關(guān)信息,列表中使用了mybatis的分頁(yè)插件,用戶(hù)可根據(jù)自己的需要選擇每頁(yè)顯示多少條信息。如圖4-5所示。圖4-5商品查詢(xún)界面后臺(tái)邏輯代碼如下:PgHelper.startPg(pg,rows);TbSpExampleexample=newTbSpExample();List<TbSp>ls=spMapper.selectByExample(example);PgInfo<TbSp>pgInfo=newPgInfo<>(ls);網(wǎng)站內(nèi)容管理模塊實(shí)現(xiàn)可在網(wǎng)站內(nèi)容管理界面,對(duì)商城首頁(yè)的模塊內(nèi)容進(jìn)行新增、查詢(xún)。在模塊中添加相應(yīng)的內(nèi)容,添加成功后,即可在商城系統(tǒng)的前臺(tái)首頁(yè)中展示添加的內(nèi)容。首頁(yè)內(nèi)容新增在首頁(yè)內(nèi)容管理界面中,可通過(guò)選擇內(nèi)容管理的模塊,后點(diǎn)擊新增按鈕新增內(nèi)容。如圖4-6所示。圖4-6首頁(yè)內(nèi)容新增界面后臺(tái)代碼如下所示:nr.setUpdated(newDate());nr.setCreated(newDate());nrMapper.insert(nr);首頁(yè)內(nèi)容查詢(xún)成功添加首頁(yè)內(nèi)容后,可在分類(lèi)列表的查詢(xún)界面中,查看添加的首頁(yè)內(nèi)容信息。如圖4-7所示。圖4-7首頁(yè)內(nèi)容查詢(xún)界面后臺(tái)代碼如下所示:if(ls!=null&&ls.size()>0){ EasyUiDataGridRsrs=newEasyUiDataGridRs(); rs.setRows(ls); rs.setTotal(pgInfo.getTotal()); returnrs; }用戶(hù)模塊實(shí)現(xiàn)用戶(hù)進(jìn)入商場(chǎng)系統(tǒng)前臺(tái)首頁(yè)后,可通過(guò)點(diǎn)擊按鈕進(jìn)行登錄或注冊(cè)操作。用戶(hù)注冊(cè)成功后,可在登錄頁(yè)面填寫(xiě)用戶(hù)信息,即可成功登錄到網(wǎng)站的前臺(tái)首頁(yè)中。用戶(hù)注冊(cè)用戶(hù)點(diǎn)擊注冊(cè)功能按鈕時(shí),跳轉(zhuǎn)到注冊(cè)界面,填寫(xiě)完注冊(cè)的信息后,通過(guò)ajax請(qǐng)求,將用戶(hù)填寫(xiě)的注冊(cè)信息提交到后臺(tái),保存到數(shù)據(jù)庫(kù)中。如圖4-8所示。圖4-8用戶(hù)注冊(cè)界面后端代碼如下:YHyh=newYH(Json.format(json));yhMapper.insert(yh);用戶(hù)登錄用戶(hù)注冊(cè)完成后,可通過(guò)注冊(cè)成功后的頁(yè)面跳轉(zhuǎn)或者在系統(tǒng)前臺(tái)點(diǎn)擊登錄按鈕,進(jìn)入用戶(hù)登錄界面進(jìn)行登錄。如圖4-9用戶(hù)登錄界面所示。圖4-9用戶(hù)登錄界面前端代碼如下:$.post("/user/login",$("#formlogin").serialize(),function(res){if(res.status==200){alert("登錄成功!");if(rrUrl==""){location.href="http://localhost:8082/";}else{location.href=redirectUrl;}}else{alert("登錄失敗,原因是:"+res.msg);$("#logn").select();}});商品模塊實(shí)現(xiàn)商品模塊,可在商城前臺(tái)界面中通過(guò)商品的信息進(jìn)行搜索、瀏覽、展示。網(wǎng)站用戶(hù)可在前臺(tái)界面通過(guò)以上三種方式,查看商品的相關(guān)信息。商品搜索在商城前臺(tái)界面中,輸入商品的信息,后臺(tái)系統(tǒng)會(huì)根據(jù)輸入的信息,根據(jù)關(guān)鍵字的權(quán)重進(jìn)行搜索。如圖4-10所示。圖4-10商品搜索界面后臺(tái)代碼如下: SolrQryqry=newSolrQry(); qry.setQry(qryString); qry.setStart((pg-1)*rows); qry.setRows(rows); qry.set("df","sp_title"); qry.setHighlight(true); qry.addHighlightField("sp_title"); qry.setHighlightSimplePre("<fontclass=\"skcolor_1jg\">"); qry.setHighlightSimplePost("</font>"); SearchRssearchRs=searchDao.search(qry);商品瀏覽用戶(hù)搜索點(diǎn)擊搜索按鈕后,系統(tǒng)根據(jù)用戶(hù)提交的信息找出相關(guān)的商品信息,用戶(hù)可瀏覽。如圖4-11所示。圖4-11商品瀏覽界面后臺(tái)邏輯代碼如下: Map<String,String>pm=newHashMap<>(); pm.put("keyword",keyword); pm.put("pg",pg+""); pm.put("rows",rows+""); Stringjson=HCUtil.doGet(SEARCH_BASE_URL,pm); RepRsrepRs=RepRs.formatToPojo(json,SearchRs.class);商品信息展示用戶(hù)在瀏覽商品的過(guò)程中,可點(diǎn)擊某一商品,進(jìn)入到商品詳情界面,查看該商品的詳細(xì)信息。如圖4-12所示。圖4-12商品信息展示界面后臺(tái)邏輯代碼如下: Stringjson=HCUtil.doGet(REST_BASE_URL+REST_SP_BASE_URL+spId); RepRsrepRs=RepRs.formatToPojo(json,PortalSp.class); TbSpsp=(TbSp)repRs.getData(); returnsp;購(gòu)物車(chē)模塊實(shí)現(xiàn)用戶(hù)在查看選中的商品詳細(xì)信息時(shí),可在頁(yè)面中通過(guò)加入購(gòu)物車(chē)按鈕,把該商品添加到購(gòu)物車(chē)中,用戶(hù)還可以在我的購(gòu)物車(chē)中查看已添加到購(gòu)物車(chē)的商品列表,并可點(diǎn)擊去結(jié)算、提交訂單按鈕,對(duì)購(gòu)物車(chē)的商品進(jìn)行支付結(jié)算。加入購(gòu)物車(chē)在商品詳情頁(yè)面,點(diǎn)擊加入購(gòu)物車(chē)按鈕,即可把商品添加到購(gòu)物車(chē)中。后臺(tái)邏輯代碼如下: TbSptbSp=spService.getSpById(spId); GwcDatagwcData=newGwcData(); gwcData.setId(spId); gwcData.setNum(num); gwcData.setPrice(tbSp.getPrice()); gwcData.setTitle(tbSp.getTitle()); if(StringUtils.isNotBlank(tbSp.getImage())){ Stringimage=tbSp.getImage(); String[]strings=image.split(","); gwcData.setImage(strings[0]); } spLs.add(gwcData);我的購(gòu)物車(chē)在我的購(gòu)物車(chē)中,用戶(hù)可查看添加到購(gòu)物車(chē)的商品。如下圖4-13所示。圖4-13我的購(gòu)物車(chē)界面后臺(tái)代碼邏輯如下: Stringjson=CookieUtils.getCookieValue(request,"TT_CART",true); List<GwcData>ls=JsonUtils.jsonToLs(json,GwcData.class); returnls==null?newArrayLs<GwcData>():ls;購(gòu)物車(chē)結(jié)算對(duì)購(gòu)物車(chē)中選中的商品,點(diǎn)擊去結(jié)算按鈕,頁(yè)面跳轉(zhuǎn)到結(jié)算界面。如圖4-14所示。圖4-14購(gòu)物車(chē)結(jié)算界面提交訂單用戶(hù)確認(rèn)購(gòu)物車(chē)訂單無(wú)誤后,可點(diǎn)擊提交訂單,即可下單成功。如圖4-15所示。圖4-15提交訂單成功界面后臺(tái)代碼邏輯如下: Stringjson=JsonUtils.objectToJson(orderInfo); StringjsonRs=HCUtil.doPostJson(ORDER_BASE_URL+ORDER_CREATE_URL,json); RepRsrepRs=RepRs.format(jsonRs); StringorderId=repRs.getData().toString(); returnorderId;本章小結(jié)本章對(duì)網(wǎng)上商城購(gòu)物系統(tǒng)的網(wǎng)站商品管理模塊、網(wǎng)站內(nèi)容管理模塊、用戶(hù)模塊、商品模塊、購(gòu)物車(chē)模塊中幾個(gè)主要的功能,做了詳細(xì)的描述,通過(guò)系統(tǒng)實(shí)現(xiàn)代碼和系統(tǒng)效果圖,展示了網(wǎng)上商城購(gòu)物系統(tǒng)的實(shí)現(xiàn)流程。
系統(tǒng)測(cè)試對(duì)系統(tǒng)進(jìn)行編程后,需要完成系統(tǒng)軟件測(cè)試環(huán)節(jié)。系統(tǒng)軟件測(cè)試不僅是測(cè)試功能,程序本身,還有頁(yè)面等方面。測(cè)試和開(kāi)發(fā)是非常技術(shù)性的工作。使用的測(cè)試方法類(lèi)型,用于測(cè)試的案例數(shù)等,都會(huì)影響軟件質(zhì)量。界面測(cè)試界面測(cè)試(簡(jiǎn)稱(chēng)UI測(cè)試),測(cè)試用戶(hù)界面的功能模塊的布局是否合理、整體風(fēng)格是否一致、各個(gè)控件的放置位置是否符合客戶(hù)使用習(xí)慣,此外還要測(cè)試界面操作便捷性、導(dǎo)航簡(jiǎn)單易懂性,頁(yè)面元素的可用性,界面中文字是否正確,命名是否統(tǒng)一,頁(yè)面是否美觀,文字、圖片組合是否完美等。功能測(cè)試功能測(cè)試,是對(duì)系統(tǒng)實(shí)現(xiàn)的功能進(jìn)行測(cè)試用例測(cè)試。以注冊(cè)功能為例子,如表5-1所示,系統(tǒng)彈窗提示如圖5-1所示。表5-1測(cè)試用例用例編號(hào)用例名稱(chēng)測(cè)試背景前置條件測(cè)試環(huán)境測(cè)試類(lèi)型測(cè)試階段測(cè)試步驟預(yù)期結(jié)果實(shí)際結(jié)果1正常注冊(cè)測(cè)試注冊(cè)功能已完善,滿(mǎn)足客戶(hù)要求輸入的用戶(hù)名未注冊(cè)Chrome瀏覽器手工測(cè)試系統(tǒng)測(cè)試1、進(jìn)入系統(tǒng)注冊(cè)頁(yè)面
2、輸入未注冊(cè)的用戶(hù)名
3、輸入的兩次密碼一致
4、輸入手機(jī)號(hào)
5、點(diǎn)擊立即注冊(cè)按鈕系統(tǒng)跳轉(zhuǎn)到登錄界面系統(tǒng)跳轉(zhuǎn)到登錄界面2輸入不規(guī)范的用戶(hù)名測(cè)試注冊(cè)功能已完善,滿(mǎn)足客戶(hù)要求輸入的用戶(hù)名已注冊(cè)Chrome瀏覽器手工測(cè)試系統(tǒng)測(cè)試1、進(jìn)入系統(tǒng)注冊(cè)頁(yè)面
2、點(diǎn)擊立即注冊(cè)按鈕系統(tǒng)彈出提示框,“用戶(hù)名已存在”系統(tǒng)彈出提示框,“用戶(hù)名已存在”3輸入不規(guī)范的用戶(hù)名測(cè)試注冊(cè)功能已完善,滿(mǎn)足客戶(hù)要求Chrome瀏覽器手工測(cè)試系統(tǒng)測(cè)試1、進(jìn)入系統(tǒng)注冊(cè)頁(yè)面
2、點(diǎn)擊立即注冊(cè)按鈕系統(tǒng)彈出提示框,“用戶(hù)名不能為空”系統(tǒng)彈出提示框,“用戶(hù)名不能為空”4輸入不規(guī)范的密碼測(cè)試注冊(cè)功能已完善,滿(mǎn)足客戶(hù)要求輸入的用戶(hù)名未注冊(cè)Chrome瀏覽器手工測(cè)試系統(tǒng)測(cè)試1、進(jìn)入系統(tǒng)注冊(cè)頁(yè)面
2、輸入用戶(hù)名
2、點(diǎn)擊立即注冊(cè)按鈕系統(tǒng)彈出提示框,“密碼不能為空”系統(tǒng)彈出提示框,“密碼不能為空”5輸入兩次不同的密碼測(cè)試注冊(cè)功能已完善,滿(mǎn)足客戶(hù)要求輸入的用戶(hù)名未注冊(cè)Chrome瀏覽器手工測(cè)試系統(tǒng)測(cè)試1、進(jìn)入系統(tǒng)注冊(cè)頁(yè)面
2、輸入用戶(hù)名
3、輸入密碼
4、再次輸入與第一次輸入的不同密碼
5、點(diǎn)擊立即注冊(cè)按鈕系統(tǒng)彈出提示框,“確認(rèn)密碼和密碼不一致,請(qǐng)重新輸入!”系統(tǒng)彈出提示框,“確認(rèn)密碼和密碼不一致,請(qǐng)重新輸入!”6輸入不規(guī)范的手機(jī)號(hào)測(cè)試注冊(cè)功能已完善,滿(mǎn)足客戶(hù)要求輸入的用戶(hù)名未注冊(cè)Chrome瀏覽器手工測(cè)試系統(tǒng)測(cè)試1、進(jìn)入系統(tǒng)注冊(cè)頁(yè)面
2、輸入用戶(hù)名
3、輸入密碼
4、再次輸入與第一次輸入的相同密碼
5、點(diǎn)擊立即注冊(cè)按鈕系統(tǒng)彈出提示框,“手機(jī)號(hào)不能為空”系統(tǒng)彈出提示框,“手機(jī)號(hào)不能為空”圖5-1測(cè)試用例系統(tǒng)彈窗效果本章小結(jié)本章通過(guò)系統(tǒng)的測(cè)試方法、測(cè)試用例,來(lái)說(shuō)明網(wǎng)上商城系統(tǒng)的測(cè)試。
總結(jié)與展望網(wǎng)絡(luò)購(gòu)物成為人們生活中不可或缺的一部分,電子商務(wù)的地位也愈發(fā)重要。本文針對(duì)網(wǎng)上商城購(gòu)物系統(tǒng)的技術(shù)特點(diǎn)及系統(tǒng)用戶(hù)的功能需求,基于微服務(wù)SOA架構(gòu)、MVC項(xiàng)目思想、JAVA語(yǔ)言、前端頁(yè)面技術(shù)、及相關(guān)技術(shù)框架,最終實(shí)現(xiàn)了網(wǎng)上購(gòu)物商城購(gòu)物系統(tǒng)。網(wǎng)上商城系統(tǒng)后臺(tái)利用了Mybatis和springmvc框架,使用了Mysql數(shù)據(jù)庫(kù),對(duì)系統(tǒng)后臺(tái)的搭建,前
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年著色蝦皮項(xiàng)目可行性研究報(bào)告
- 提升農(nóng)村充電基礎(chǔ)設(shè)施建設(shè)方案
- 足下垂的護(hù)理措施
- 2025年焊接式快裝接頭項(xiàng)目可行性研究報(bào)告
- 清香型白酒行業(yè)發(fā)展趨勢(shì)與市場(chǎng)潛力解析
- 加快有效投資擴(kuò)展的路徑與策略解析
- 2025年水下燈專(zhuān)用變壓器項(xiàng)目可行性研究報(bào)告
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)項(xiàng)目發(fā)展前景分析
- 培訓(xùn)-銷(xiāo)售業(yè)務(wù)流程
- 2025年拖葉項(xiàng)目可行性研究報(bào)告
- 2025年安徽合肥興泰金融控股集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《道路交通安全法》課件完整版
- 加快形成農(nóng)業(yè)新質(zhì)生產(chǎn)力
- 施工現(xiàn)場(chǎng)應(yīng)急救援知識(shí)
- 飼料行業(yè)業(yè)務(wù)員聘用合同范本
- 全國(guó)園地、林地、草地分等定級(jí)數(shù)據(jù)庫(kù)規(guī)范1123
- 人工智能在教學(xué)動(dòng)畫(huà)設(shè)計(jì)中的應(yīng)用與創(chuàng)新路徑探究
- 護(hù)理中醫(yī)新技術(shù)新項(xiàng)目
- VDA-6.3-2016過(guò)程審核檢查表
- 【MOOC】普通地質(zhì)學(xué)-西南石油大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 民辦學(xué)校教師招聘與管理制度
評(píng)論
0/150
提交評(píng)論