【基于JAVA的網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)】11000字(論文)_第1頁
【基于JAVA的網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)】11000字(論文)_第2頁
【基于JAVA的網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)】11000字(論文)_第3頁
【基于JAVA的網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)】11000字(論文)_第4頁
【基于JAVA的網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)】11000字(論文)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于JAVA的網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)目錄TOC\o"1-3"\h\u8214第一章緒論 摘要在計(jì)算機(jī)技術(shù)迅速發(fā)展今天,網(wǎng)絡(luò)時(shí)代早已來臨,電子商務(wù)已經(jīng)成為當(dāng)代促進(jìn)經(jīng)濟(jì)運(yùn)行的先進(jìn)的手段。為了讓消費(fèi)者實(shí)現(xiàn)何時(shí)何地都能購物的愿望,網(wǎng)上書店將成為人們現(xiàn)實(shí)生活中必不可少的一部分。網(wǎng)上書店的設(shè)立在能夠讓買賣雙方的信息交流更加深入的同時(shí),消費(fèi)者也能夠節(jié)約路程時(shí)間,賣家對(duì)圖書管理也能更加簡(jiǎn)便規(guī)范,也節(jié)約了人力資源,這是傳統(tǒng)書店無法比擬的。本系統(tǒng)主要分為前臺(tái)和后臺(tái),前臺(tái)給用戶提供瀏覽、篩選、購物、支付,后臺(tái)管理員可以進(jìn)行用戶管理、圖書管理、分類管理。本課題分析了當(dāng)前網(wǎng)上書店的發(fā)展現(xiàn)狀以及研究可行性狀況基礎(chǔ)上,針對(duì)客戶對(duì)圖書的需求,設(shè)計(jì)開發(fā)了一款網(wǎng)上書店系統(tǒng)。系統(tǒng)使用Java作為開發(fā)語言,使用SSM技術(shù)框架,選用Mysql數(shù)據(jù)庫,用idel作為開發(fā)環(huán)境,開發(fā)一個(gè)基于B/S的網(wǎng)上書店系統(tǒng)。關(guān)鍵詞:網(wǎng)上書店;電子商務(wù);Java;第一章緒論1.1課題背景在當(dāng)今的市場(chǎng)中,互聯(lián)網(wǎng)技術(shù)有了越來越好的發(fā)展,電子商務(wù)逐漸在各個(gè)行業(yè)中都扮演這尤其重要的角色。由此可見,電子商務(wù)的影響已經(jīng)演變成了以技術(shù)為基礎(chǔ)的管理的狀態(tài),未來還會(huì)有很大的發(fā)展前景。前幾年,電子商務(wù)還拘泥于一個(gè)小小的技術(shù)范圍,可見電子商務(wù)發(fā)展尤為快速。電子商務(wù)是互聯(lián)網(wǎng)發(fā)展的產(chǎn)物,在日常的生活和工作中電子商務(wù)給人們的帶來了很多的便利,也給人類的思維模式帶來了很大的轉(zhuǎn)變。電子商務(wù)利用虛擬網(wǎng)絡(luò)為載體帶領(lǐng)了一次新的信息技術(shù)革命,這次信息技術(shù)革命讓社會(huì)的生產(chǎn)力、生產(chǎn)關(guān)系、經(jīng)濟(jì)結(jié)構(gòu)都發(fā)生了改變,影響尤其深遠(yuǎn)。改革開放以后,隨著電子設(shè)備在社會(huì)上陸續(xù)出現(xiàn)、逐漸普及,開始利用電視廣告向人們進(jìn)行營(yíng)銷,也有人通過打電話的方式向人們推銷商品。后來,因特網(wǎng)出現(xiàn)了,電子商務(wù)從低端的電視電話營(yíng)銷逐漸轉(zhuǎn)向在網(wǎng)絡(luò)上進(jìn)行商品信息傳播的高端的狀態(tài)。電子商務(wù)從數(shù)據(jù)交換應(yīng)用發(fā)展成為現(xiàn)在的全球化電子商務(wù),電子商務(wù)的變革與發(fā)展歷歷在目。在這個(gè)網(wǎng)絡(luò)全球化快速發(fā)展的時(shí)代,消費(fèi)者更加需要利用電子商務(wù)技術(shù)開發(fā)的基于網(wǎng)絡(luò)的網(wǎng)上書店管理系統(tǒng)。我們?cè)O(shè)計(jì)這套網(wǎng)上書店管理系統(tǒng)可以解決很多方面的問題,例如:減少消費(fèi)者購物時(shí)間、售后更加方便、解決圖書管理人力不足問題。本系統(tǒng)利用網(wǎng)絡(luò)通信技術(shù)來實(shí)現(xiàn)網(wǎng)上圖書購買,利用的程序開發(fā)技術(shù)是J2EE技術(shù),數(shù)據(jù)庫技術(shù)為Mysql數(shù)據(jù)庫系統(tǒng),整體了解圖書購物流程,認(rèn)真分析了網(wǎng)上書店系統(tǒng)的功能需求和性能需求,將權(quán)限控制、用戶管理、分類管理、商品發(fā)布、用戶個(gè)人信息五大功能模塊整合并且利用數(shù)據(jù)庫系統(tǒng)完成了網(wǎng)上書店系統(tǒng)的設(shè)計(jì)。1.2開發(fā)工具及技術(shù)1.2.1開發(fā)工具本系統(tǒng)通過Java開發(fā)常用的JSP服務(wù)端技術(shù),選用IDEA作為集成開發(fā)平臺(tái),用Mysql作為數(shù)據(jù)庫開發(fā)平臺(tái)。本系統(tǒng)采用的框架,前端采用了Spring框架,后端采用了SpringMVC、Mybatis框架。使用IntelliJIDEA2019.3.3x64作為開發(fā)工具,選用Tomcat作為web服務(wù)器,使用Maven進(jìn)行項(xiàng)目管理。1.2.2IDEA在當(dāng)前的Java語言開發(fā)中,IDEA是使用頻率較高的一款工具。使用IDEA有很多的優(yōu)勢(shì),首先IDEA的安裝包很小,而且包括了開發(fā)中需要的一些功能。其次,IDEA相比其他工具而言運(yùn)行速度較快而且產(chǎn)生的bug非常少,用來檢查語法非常的精確穩(wěn)定。IDEA的可用性也很高,如可以直接導(dǎo)向到類源代碼、可以自動(dòng)補(bǔ)全,這樣可以有效的避免配置錯(cuò)誤的情況。最后,IDEA支持重構(gòu)與插件,這個(gè)功能可以使開發(fā)更加簡(jiǎn)單方便。因此,IDEA在企業(yè)級(jí)開發(fā)中受到了很多程序員的青睞。1.2.3TomcatTomcat是一款小型的web服務(wù)器,Tomcat具有可擴(kuò)展性和安全性等特點(diǎn)。Tomcat是免費(fèi)的,而且它的體積很小,方便我們安裝和部署,Tomcat也是是servlet和JSP的容器。在一些中小型的開發(fā)項(xiàng)目中,Tomcat是程序員的首選服務(wù)器。Tomcat也能夠處理HTML頁面,在這點(diǎn)上Tomcat服務(wù)器類似于其他的web服務(wù)器。Tomcat的重要目錄有bin目錄(腳本存放)、conf目錄(配置文件)、logs目錄(默認(rèn)日志)以及webapps目錄(運(yùn)行)。1.2.4SpringSpring框架是一個(gè)開源框架,是深受企業(yè)青睞的Java應(yīng)用程序開發(fā)框架。Spring框架使企業(yè)Java開發(fā)變得更加簡(jiǎn)單。Spring的用途不僅是服務(wù)器端的開發(fā),還具有兩大特性:IOC和AOP。IOC是控制反轉(zhuǎn)也叫依賴注入。在Spring配置文件中使用xml配置文件來進(jìn)行設(shè)置管理,Spring就會(huì)自動(dòng)初始化,使用者就不需要?jiǎng)?chuàng)建對(duì)象。AOP是面向切面,是一種編程思想。使用面向切面編程的思想能夠把程序中的交叉業(yè)務(wù)邏輯封裝成一個(gè)切面,再注入到具體的業(yè)務(wù)邏輯中。降低各個(gè)模塊之間的耦合度。1.2.5SpringMVCSpringMVC框架是Spring提供的一個(gè)MVC框架。相對(duì)于其他的MVC框架而言,SpringMVC支持Spring的特性,兩者能夠簡(jiǎn)單靈活的整合,通過簡(jiǎn)單的注釋就能夠聲明前端控制類,開發(fā)更為簡(jiǎn)單規(guī)范。1.2.6MybatisMyabtis框架是一個(gè)基于Java的持久層框架,Mybatis是通過使用簡(jiǎn)單的xml或注解來配置和原始映射類型,將接口和Java的POJO映射為數(shù)據(jù)庫中的記錄。簡(jiǎn)單而言,Myabtis就是一個(gè)可以幫助你管理數(shù)據(jù)的增刪改查的框架。1.2.7Maven本系統(tǒng)使用Maven工具來進(jìn)行項(xiàng)目管理。Maven對(duì)于jar包的管理很方便,通過maven配置文件,pom文件就會(huì)自動(dòng)管理已經(jīng)完成下載的jar包,不需要親自動(dòng)手下載jar。Maven可以解決導(dǎo)入java類的jar包依賴,而且可以減少jar包之間的沖突的狀況。系統(tǒng)分析2.1系統(tǒng)流程本系統(tǒng)主要為用戶和管理員進(jìn)行操作。在用戶登錄驗(yàn)證成功之后,我們就能進(jìn)入系統(tǒng)的前臺(tái)首頁界面。而后臺(tái)系統(tǒng)一定要管理員角色在登錄成功的情況下才能進(jìn)入。下面兩個(gè)圖是用戶和管理員進(jìn)入系統(tǒng)的流程圖。用戶進(jìn)入系統(tǒng)的流程圖如圖2-1所示。管理員進(jìn)入系統(tǒng)流程圖如圖2-2所示。用戶前臺(tái)首頁驗(yàn)證成功與否登錄頁面點(diǎn)擊登錄否是查看個(gè)人信息模塊前臺(tái)首頁查看商品用戶前臺(tái)首頁驗(yàn)證成功與否登錄頁面點(diǎn)擊登錄否是查看個(gè)人信息模塊前臺(tái)首頁查看商品Y

角色為管理員進(jìn)入后臺(tái)管理管理員登錄2.2可行性分析世界上第一家網(wǎng)上書店是在美國(guó)建立的,網(wǎng)上書店從它出現(xiàn)發(fā)展到現(xiàn)在主要經(jīng)歷了三個(gè)過程。第一個(gè)過程是新生階段,在這個(gè)過程中,圖書采購的工作從傳統(tǒng)的人工購買轉(zhuǎn)變?yōu)榛谟?jì)算機(jī)系統(tǒng)的在線工作,是一個(gè)雛形階段。第二個(gè)過程是在線階段,在這個(gè)過程中,網(wǎng)上書店發(fā)展迅速,有了基本的發(fā)展框架與流程。第三個(gè)過程是成熟階段,在這一個(gè)過程中,計(jì)算機(jī)通信技術(shù)與網(wǎng)絡(luò)技術(shù)有了快速的發(fā)展,而且網(wǎng)上支付的日漸普及以及物流的效率逐漸提高給網(wǎng)上書店的發(fā)展提供了能夠興旺發(fā)展的絕佳機(jī)會(huì),這也預(yù)示了網(wǎng)上書店的發(fā)展終將趨于成熟化,融入人們的日常生活之中。2.2.1技術(shù)可行性本網(wǎng)上書店系統(tǒng)是利用Java語言,使用B/S體系結(jié)構(gòu)進(jìn)行開發(fā)設(shè)計(jì)的。Java語言在當(dāng)前是一種很流行的語言,用來實(shí)現(xiàn)網(wǎng)上書店系統(tǒng)相對(duì)比較簡(jiǎn)單,在技術(shù)上面不會(huì)有很大的難度,它的特點(diǎn)有:簡(jiǎn)單、分布性廣、穩(wěn)健性強(qiáng)、安全性高等。本系統(tǒng)使用SSM技術(shù)框架,即Spring框架、SpringMVC框架和Mybatis框架,SSM框架是Java開發(fā)里最為常用的企業(yè)級(jí)框架,使用起來難度相對(duì)較低。本系統(tǒng)使用IntelliJIDEA作為開發(fā)工具。使用IDEAJ開發(fā)系統(tǒng)會(huì)有很多的優(yōu)勢(shì)并且它支持開發(fā)的環(huán)境相對(duì)比較好。比如說代碼能夠智能的提示重構(gòu)、支持快捷鍵等,這樣可以提高程序員的開發(fā)效率。數(shù)據(jù)庫管理系統(tǒng)使用的是Mysql,Mysql數(shù)據(jù)庫系統(tǒng)在現(xiàn)代生活中應(yīng)用很廣泛。因?yàn)镸ysql是開放源代碼,而且總體而言成本也是較低的。在開發(fā)本系統(tǒng)中,Mysql數(shù)據(jù)庫的功能也能夠滿足基本需求,盡管和Oracle相比較,Oracle的功能比Mysql更多且安全性更好。再從反面來說,Oracle在出現(xiàn)問題之后需要花費(fèi)很大的代價(jià)去進(jìn)行數(shù)據(jù)庫維護(hù),因?yàn)镺racle不是免費(fèi)面向大眾的。綜合比較,最終決定使用Mysql數(shù)據(jù)庫管理系統(tǒng)。項(xiàng)目管理工具使用的是Maven,這個(gè)工具可以通過在文件中添加相對(duì)應(yīng)的配置的方法幫助我們解決導(dǎo)入Java類需要的jar包,這樣就防止jar包之間依賴出現(xiàn)沖突的狀況,Maven也是能夠自動(dòng)的幫我們管理jar包的,對(duì)我們而言方便了許多。經(jīng)過一系列的分析,我們?cè)诩夹g(shù)上是可行的。2.2.2經(jīng)濟(jì)可行性網(wǎng)上書店系統(tǒng)是通過網(wǎng)絡(luò)互聯(lián)技術(shù)實(shí)現(xiàn)的,這樣能夠很大程度上節(jié)約時(shí)間,給人們生活帶來便利。我們使用傳統(tǒng)的方式進(jìn)行線下買書往往會(huì)消耗我們大量的精力和時(shí)間。想要買一本書,可能因?yàn)楸镜貨]有,需要自己驅(qū)車幾公里甚至幾十公里去外地才能買到我們想要的書。但是通過網(wǎng)上書店的網(wǎng)站,可以距離千里下單,依靠如今三天必到的快捷物流,將我們想要的書下單后送到我們的手中,可以明顯的感覺到解決買書困難費(fèi)時(shí)的時(shí)間大大的縮短了。網(wǎng)上書店網(wǎng)站上有各種我們想要的書籍,只需要通過搜索查找相關(guān)的書就可以找到,方便快捷,縮編找書的時(shí)間,提高效率。這樣的成本更低。也在一定程度上解決了傳統(tǒng)書店宣傳方面人力資源不足的困擾。經(jīng)過分析,在經(jīng)濟(jì)上是可行的。2.2.3操作可行性網(wǎng)上書店系統(tǒng)操作簡(jiǎn)單,每個(gè)人應(yīng)該都可以很輕松的掌握其使用方法。本系統(tǒng)運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù)會(huì)持久的保存在數(shù)據(jù)庫中,安全可靠。系統(tǒng)界面簡(jiǎn)潔易懂,能夠使人很快的了解,可以節(jié)約很多的時(shí)間。本系統(tǒng)只要使用者有基本的上網(wǎng)操作的經(jīng)驗(yàn),就能夠做到添加到購物車或者直接購買,等操作之后只要等著快遞送貨到自己的手上就可以了。綜上,在操作上是可行的。2.3系統(tǒng)及其功能需求分析2.3.1系統(tǒng)需求分析網(wǎng)上書店系統(tǒng)使用的是SSM框架技術(shù),系統(tǒng)主要分為用戶登錄使用的前臺(tái)和管理員登錄使用的后臺(tái)。管理員是網(wǎng)上書城的商品管理者以及人員信息的管理者,可以管理本商城的人員的賬號(hào)是否可以登錄本網(wǎng)站,也可以及時(shí)的更新網(wǎng)站的商品的信息以及價(jià)格,針對(duì)本網(wǎng)站的商品分類進(jìn)行管理。本系統(tǒng)前臺(tái)展示的數(shù)據(jù)為管理員后臺(tái)編輯所得到的,主要為商品的展示,以及用戶添加進(jìn)入購物車,展示購物車數(shù)據(jù)以及修改個(gè)人信息等的操作。如果用戶未登錄,不可以對(duì)商品的信息以及進(jìn)行添加購物車、或者查看個(gè)人隱私信息的操作,如果點(diǎn)擊會(huì)被攔截器攔截回到登錄頁面,等到登錄頁面判斷用戶如果已經(jīng)正常登錄后,才可以進(jìn)行下一步的操作。2.3.2系統(tǒng)功能需求分析本系統(tǒng)設(shè)計(jì)主要是為管理員和用戶兩個(gè)方面來設(shè)計(jì)的,系統(tǒng)前臺(tái)顯示的商品等信息需要管理員通過后臺(tái)系統(tǒng)進(jìn)行添加,以及對(duì)商品的分類進(jìn)行管理和修改。以幫助更好的進(jìn)行商品的管理和統(tǒng)計(jì)。用戶可以對(duì)本系統(tǒng)的商品進(jìn)行加入購物車操作以及對(duì)購物車的商品進(jìn)行修改刪除。本系統(tǒng)滿足以下基本需求:(1)管理員和用戶都可以通過成功登錄后進(jìn)入前臺(tái)系統(tǒng)。(2)管理員在登錄頁面成功登錄后能夠進(jìn)入后臺(tái)系統(tǒng),要是管理員信息過期必須重新登陸才可以進(jìn)入后臺(tái)系統(tǒng),在其他狀況下無論進(jìn)行什么操作系統(tǒng)都會(huì)跳轉(zhuǎn)到登錄頁面。(3)商品管理界面管理員可以將商品進(jìn)行編輯、修改、刪除、上架、下架、搜索等操作。(4)用戶登錄后進(jìn)入系統(tǒng)前臺(tái)可以進(jìn)行加入購物車、支付結(jié)算、查看訂單等操作。(5)商品分類界面管理員可以對(duì)圖書分類進(jìn)行添加、刪除、編輯等操作。(6)管理員可以對(duì)用戶進(jìn)行添加、編輯、刪除等操作。2.4功能模塊分析2.4.1權(quán)限控制管理模塊權(quán)限控制管理模塊主要是對(duì)進(jìn)入后臺(tái)系統(tǒng)人員的身份進(jìn)行一個(gè)管理控制,只有管理員的身份才被允許進(jìn)入。用戶不可以進(jìn)入系統(tǒng)的后臺(tái),而管理員必須要在用戶表中有記錄的賬號(hào)并且在成功輸入密碼之后才可以進(jìn)入后臺(tái)系統(tǒng)。2.4.2用戶管理模塊用戶管理模塊是管理員的功能,根據(jù)在數(shù)據(jù)庫中記錄的用戶信息判斷該人員是否可以進(jìn)入系統(tǒng),管理員可以在用戶管理模塊可以添加用戶、刪除用戶、編輯用戶、查看用戶的個(gè)人信息,編輯用戶里面可以設(shè)置用戶的狀態(tài)(是否允許用戶進(jìn)入),從而對(duì)所有的人員進(jìn)行管控。2.4.3分類管理模塊分類管理模塊主要是管理員進(jìn)行商品分類管理。管理員可以根據(jù)商品圖書的出版社或者性質(zhì)等進(jìn)行分類,然后將商品歸類到屬于它的分類下面。這樣的做法會(huì)方便在查找商品時(shí),可以直接根據(jù)圖書的分類找到相應(yīng)的圖書,也可以根據(jù)分類找到相應(yīng)類型的圖書。2.4.4商品發(fā)布管理模塊商品發(fā)布管理模塊,這個(gè)模塊是管理員對(duì)系統(tǒng)的商品進(jìn)行編輯管理。通過這個(gè)模塊的編輯,我們可以在前臺(tái)系統(tǒng)中看到展示的內(nèi)容。商品發(fā)布的時(shí)侯,管理員可以編輯商品的信息,如插入圖片、選擇商品展示的狀態(tài)、商品的分類、商品的屬性、可以自定義商品的名稱、添加關(guān)于商品的描述、調(diào)整文本的字體樣式等。2.4.5用戶個(gè)人信息模塊用戶個(gè)人信息模塊,這個(gè)模塊是前臺(tái)系統(tǒng)中提供給用戶使用的。在這個(gè)模塊用戶可以自己隨時(shí)修改自己的個(gè)人信息,查詢自己的訂單信息情況,可以自己在購物車內(nèi)進(jìn)行商品的添加與刪除,決定是否購買商品、進(jìn)行支付。2.5系統(tǒng)設(shè)計(jì)原則1.本系統(tǒng)采用的體系結(jié)構(gòu)是B/S,用中文來說就是瀏覽器/服務(wù)器模式。B/S體系是分布式的,可以隨時(shí)隨地的查詢?yōu)g覽業(yè)務(wù)。它業(yè)務(wù)擴(kuò)展和維護(hù)都簡(jiǎn)單方便,相對(duì)而言開發(fā)簡(jiǎn)單并且共享性很強(qiáng)。系統(tǒng)發(fā)布需要在安裝服務(wù)器之后,通過在服務(wù)器上發(fā)布,進(jìn)而可以在瀏覽器上訪問這個(gè)系統(tǒng)。2.在開發(fā)的過程中使用了面向?qū)ο蟮乃枷?,減少了開發(fā)者的技術(shù)難度,保證了系統(tǒng)的可擴(kuò)展性和穩(wěn)定性。3.本系統(tǒng)在設(shè)計(jì)上將整個(gè)系統(tǒng)分為幾個(gè)單獨(dú)的模塊,對(duì)每個(gè)模塊進(jìn)行開發(fā),最后進(jìn)行合并,減少了耦合的可能性。4.本系統(tǒng)的頁面設(shè)計(jì)簡(jiǎn)潔易懂,只要是有上網(wǎng)基礎(chǔ)的用戶都可以很快的接受使用。2.6性能需求2.6.1系統(tǒng)的安全性為了保證系統(tǒng)的安全,用戶在沒有登錄的情況下,呈現(xiàn)給用戶的始終是注冊(cè)和登錄的界面,用戶不能夠直接進(jìn)入系統(tǒng)界面。用戶只有登陸了才可以訪問整個(gè)前臺(tái)系統(tǒng),管理員也才可以進(jìn)入系統(tǒng)進(jìn)行一系列的操作,這樣就保證了權(quán)限的控制以及數(shù)據(jù)的安全。2.6.2數(shù)據(jù)的完整性1.在修改用戶數(shù)據(jù)之前,管理員需要先將數(shù)據(jù)從數(shù)據(jù)庫中取出來,然后對(duì)應(yīng)用戶信息在相應(yīng)的地方進(jìn)行數(shù)據(jù)修改。2.如果修改的數(shù)據(jù)在很多的表格中出現(xiàn),那么要將這些表格數(shù)據(jù)全部進(jìn)行修改,保證數(shù)據(jù)的前后統(tǒng)一。第三章數(shù)據(jù)庫設(shè)計(jì)3.1數(shù)據(jù)庫分析數(shù)據(jù)庫是開發(fā)系統(tǒng)的靈魂部分,使用尤其重要的一部分。我們進(jìn)行程序開發(fā)時(shí),需要將系統(tǒng)中大部分的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。我們可以將存儲(chǔ)在數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)進(jìn)行搜索、增加、刪除、修改、更改等一系列的操作。數(shù)據(jù)庫可以實(shí)現(xiàn)數(shù)據(jù)共享、減少數(shù)據(jù)多余的信息、實(shí)現(xiàn)數(shù)據(jù)的獨(dú)立和數(shù)據(jù)的集中管理、保證數(shù)據(jù)的安全性和可靠性等。一個(gè)想要成功開發(fā)出系統(tǒng)的公司都會(huì)明白數(shù)據(jù)庫系統(tǒng)的重要性,它可以給公司項(xiàng)目帶來質(zhì)量上的提高以及工作人員上效率的提高,所以大型企業(yè)都會(huì)有專業(yè)的數(shù)據(jù)庫設(shè)計(jì)的團(tuán)隊(duì)來為企業(yè)謀福利。3.2數(shù)據(jù)庫設(shè)計(jì)3.2.1數(shù)據(jù)庫概念模型設(shè)計(jì)數(shù)據(jù)庫概念模型設(shè)計(jì)是用E-R圖來描述現(xiàn)實(shí)系統(tǒng)中每個(gè)實(shí)體之間對(duì)應(yīng)的關(guān)系。這個(gè)E-R圖必須要確保能夠真實(shí)的反映出現(xiàn)實(shí)生活中各個(gè)事物之間的關(guān)系,這樣我們才能夠準(zhǔn)確的通過數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)這些需求。系統(tǒng)信息實(shí)體圖如圖3-1所示。圖3-1系統(tǒng)信息實(shí)體圖3.2.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計(jì)是要求我們?cè)O(shè)計(jì)一款獨(dú)特的數(shù)據(jù)模型,是根據(jù)我們具體的數(shù)據(jù)庫系統(tǒng)的特點(diǎn)進(jìn)行設(shè)計(jì)的。我們需要了解整個(gè)運(yùn)行流程,制定E-R圖,再將一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模型且對(duì)應(yīng)一個(gè)表格。在設(shè)計(jì)的過程中,我們要注意命名的規(guī)范性并且要遵循主鍵約束、外鍵關(guān)聯(lián)等一系列原則,來確保設(shè)計(jì)的完整性。首先在mysql數(shù)據(jù)庫創(chuàng)建名為db_onlinebook的數(shù)據(jù)庫。

然后新建數(shù)據(jù)表如下。用戶管理員信息表(a_user)用戶管理員信息表主要用來存放用戶個(gè)人信息,主要字段包括用戶id、用戶名、密碼、屬性、手機(jī)號(hào)碼、郵箱、收貨地址、狀態(tài)。表3-2用戶管理員信息表(a_user)字段名類型主外鍵長(zhǎng)度是否為空描述user_idint是11NO用戶iduser_namevarchar否255YES用戶名user_passwordvarchar否255YES密碼user_gendervarchar否255YES屬性u(píng)ser_phonevarc用戶har否255YES手機(jī)號(hào)user_emailvarchar否255YES郵箱user_adressvarchar否255YES收貨地址user_statusint否11YES賬號(hào)狀態(tài)1有效0無效(2)商品信息表(book_table)商品表就是圖書表,主要用來存放商品的信息狀況,主要字段包括:圖書id、書名、介紹、價(jià)格、庫存數(shù)量、作者、出版社、日期、類型、狀態(tài)、圖片地址。表3-3商品信息表(book_table)字段名類型長(zhǎng)度是否為空描述b_idint11NO圖書idb_namevarchar255YES書名b_detailmediumtext16777215YES介紹b_pircevarchar255YES價(jià)格b_amountvarchar255YES庫存數(shù)量b_writervarchar255YES作者b_printervarchar255YES出版社b_datedatetime0YES日期b_typevarchar255YES類型b_statusvarchar255YES狀態(tài)1上架0下架b_imagevarchar255YES圖片地址(3)目錄信息表(category_table)目錄表主要就是用于存放圖書的分類目錄,主要字段包括:目錄分類id、目錄父級(jí)分類id、目錄分類名稱、目錄分類描述、目錄分類icon。表3-4目錄信息表(category_table)字段名類型長(zhǎng)度是否為空描述category_idint11NO目錄分類idcategory_pidint11YES目錄父級(jí)分類idcategory_namevarchar50YES目錄分類名稱category_descriptionvarchar255YES目錄分類描述category_orderint11YES目錄分類順序category_iconvarchar20YES目錄分類icon(4)購物車信息表(c_table)購物車信息表就是用來存放用戶添加進(jìn)購物車的商品,主要字段包括:購物車id、購物車圖書id、購物車用戶id、購物車數(shù)量、購物車總價(jià)。表3-5購物車信息表(c_table)字段名類型長(zhǎng)度是否為空描述c_idint11NO購物車idc_book_idint11YES購物車圖書idc_user_idint11YES購物車用戶idc_amountvarchar255YES購物車數(shù)量c_total_pricevarchar255YES購物車總價(jià)c_datedatetime0YES購物車日期(5)用戶關(guān)聯(lián)地址信息表(u_table)用戶關(guān)聯(lián)地址表就是用來存放用戶的地址信息,主要字段包括:用戶關(guān)聯(lián)地址編號(hào)、用戶關(guān)聯(lián)用戶id、用戶關(guān)聯(lián)收貨地址、用戶關(guān)聯(lián)收貨姓名、用戶關(guān)聯(lián)收貨電話、用戶關(guān)聯(lián)備注。表3-6用戶關(guān)聯(lián)地址信息表(u_table)字段名類型長(zhǎng)度是否為空描述ua_idint11NO用戶關(guān)聯(lián)地址編號(hào)user_idint11NO用戶關(guān)聯(lián)用戶idu_addressvarchar255YES用戶關(guān)聯(lián)收貨地址u_namevarchar255YES用戶關(guān)聯(lián)收貨姓名u_phonevarchar255YES用戶關(guān)聯(lián)收貨電話u_remarkvarchar255YES用戶關(guān)聯(lián)備注(6)訂單信息表(o_table)訂單表就是用來存放訂單信息的,主要字段包括:訂單表id、訂單編號(hào)、訂單日期、訂單名字、訂單地址、訂單狀態(tài)、用戶id。表3-7訂單信息表(o_table)字段名類型長(zhǎng)度是否為空描述o_idint11NO訂單表ido_novarchar10YES訂單編號(hào)o_datedatetime11YES訂單日期o_namevarchar255YES訂單名字o_adressvarchar255YES訂單地址o_statusvarchar255YES訂單狀態(tài)o_uidint11YES用戶id(7)訂單明細(xì)信息表(od_table)訂單明細(xì)表就是用來存儲(chǔ)關(guān)于訂單的商品、數(shù)量等的關(guān)系的,主要字段包括:訂單詳情id、訂單明細(xì)圖書id、訂單明細(xì)訂單編號(hào)、訂單明細(xì)訂單價(jià)格、訂單明細(xì)訂單數(shù)量、訂單明細(xì)訂單備注、訂單狀態(tài)。表3-8訂單明細(xì)信息表(od_table)字段名類型長(zhǎng)度是否為空描述od_idint11NO訂單詳情idod_book_idint11YES訂單明細(xì)圖書idod_order_idvarchar255YES訂單明細(xì)訂單編號(hào)od_pricedecimal11YES訂單明細(xì)訂單價(jià)格od_amountvarchar255YES訂單明細(xì)訂單數(shù)量od_remarksvarchar255YES訂單明細(xì)訂單備注od_statusvarchar255YES訂單狀態(tài)第四章系統(tǒng)功能實(shí)現(xiàn)4.1系統(tǒng)功能結(jié)構(gòu)本系統(tǒng)使用SSM技術(shù)開發(fā)的網(wǎng)上書店系統(tǒng),在設(shè)計(jì)過程中將系統(tǒng)分為前臺(tái)和后臺(tái)兩個(gè)部分。前臺(tái)部分主要是用戶進(jìn)行查看圖書商品的信息、添加購物車、個(gè)人信息查看以及修改、個(gè)人收貨地址的管理、購物車管理、支付的功能。后臺(tái)部分主要是管理員進(jìn)行管理分類目錄、管理商品信息、管理用戶以及管理訂單的功能。系統(tǒng)功能結(jié)構(gòu)圖如圖4-1所示。4-1系統(tǒng)功能結(jié)構(gòu)圖4.2系統(tǒng)使用的框架配置SSM框架的整合主要用到的文件有,springmvc.xml配置文件,springmybatis.xml配置文件,springservice.xml文件和mybatisconfig.xml文件。

框架整合的主要代碼如下。(1)系統(tǒng)中前端控制器設(shè)計(jì)代碼如下:<servlet><servlet-name>onlinebook</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springConfig/springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>onlinebook</servlet-name><url-pattern>/</url-pattern></servlet-mapping>(2)系統(tǒng)中視圖解析器設(shè)計(jì)代碼如下<listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener>

<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp/"/><propertyname="suffix"value=".jsp"/></bean>(3)系統(tǒng)中環(huán)繞通知設(shè)計(jì)代碼如下<beanid="tAdminService"class="com.it.service.impl.TAdminServiceImpl"/><beanid="tBookService"class="com.it.service.impl.TBookServiceImpl"/><beanid="tCartService"class="com.it.service.impl.TCartServiceImpl"/><beanid="tOrderDetailService"class="com.it.service.impl.TOrderDetailServiceImpl"/><beanid="tOrderService"class="com.it.service.impl.TOrderServiceImpl"/><beanid="tUserService"class="com.it.service.impl.TUserServiceImpl"/><beanid="tCategoryService"class="com.it.service.impl.TCategoryServiceImpl"/><beanid="userRefAddressService"class="com.it.service.impl.UserRefAddressServiceImpl"/>(4)配置Mapper掃描器<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><propertyname="dataSource"ref="dataSource"/><propertyname="configLocation"value="classpath:mybatisConfig/mybatis-config.xml"/><propertyname="mapperLocations"value="classpath*:mapper/*Mapper.xml"/><propertyname="typeAliasesPackage"value="com.it.entity"/></bean>

<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><propertyname="basePackage"value="com.it.mapper"></property><propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/></bean>4.3數(shù)據(jù)庫連接配置本系統(tǒng)使用的數(shù)據(jù)庫連接池工具是Druid連接池,一款開源的國(guó)產(chǎn)數(shù)據(jù)庫連接池。Druid連接池不但擁有其他數(shù)據(jù)庫連接池的優(yōu)點(diǎn),而且自身還帶有非常強(qiáng)大的監(jiān)控功能,是目前來說非常流行的連接池。本系統(tǒng)采用在屬性文件中添加mysql數(shù)據(jù)庫連接的配置文件,這樣操作可以讓修改mysql數(shù)據(jù)庫配置變得更加簡(jiǎn)單。數(shù)據(jù)庫連接配置的主要代碼如下:

首先需要mybatis的配置文件下在再引入以下文件

<context:property-placeholderlocation="classpath:perties"/>配置druid連接池<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><propertyname="driverClassName"value="${mysql.driver}"/><propertyname="url"value="${mysql.url}"/><propertyname="username"value="${mysql.username}"/><propertyname="password"value="${mysql.password}"/><propertyname="filters"value="stat"/></bean>4.4主要功能實(shí)現(xiàn)4.4.1前臺(tái)界面進(jìn)入系統(tǒng)首先展示的是前臺(tái)首頁,這時(shí)是沒有登錄的狀態(tài),頁面上有提示登陸注冊(cè)以及各類圖書的分類情況,最上面有溫馨的提示,您好!找到中意的書了嗎?這句話覺得非常的暖心。讓人覺得這個(gè)網(wǎng)站會(huì)非常的有溫度,會(huì)讓人繼續(xù)瀏覽網(wǎng)頁,查看下去。前臺(tái)首頁展示圖如圖4-2所示。圖4-2前臺(tái)首頁展示圖4.4.2登錄功能登錄功能,前臺(tái)的登錄功能是用戶進(jìn)行登錄的頁面,用戶進(jìn)行登錄后,才能查看個(gè)人信息、個(gè)人訂單、個(gè)人的購物車進(jìn)行查看。否則不能對(duì)相關(guān)的商品、進(jìn)行操作和編輯個(gè)人的信息。登錄界面展示圖如圖4-3所示。圖4-3登錄界面展示圖該功能實(shí)現(xiàn)代碼如下:<%--登錄頁面進(jìn)行驗(yàn)證--%>$("#loginBtn").click(function(){varuser=$("#userLogin").val();//用戶賬號(hào)varpass=$("#userPass").val();//用戶密碼//判斷用戶賬號(hào)獲取是否為空if(user==""){alert("提示:用戶名不可為空!");}elseif(pass==""){alert("提示:密碼不可為空!");}else{$.ajax({async:false,type:"POST",url:'/userLoginVerify,contentType:"application/x-www-form-urlencoded;"data:$("#userLoginForm").serialize(),dataType:"json",//json格式success:function(resData){if(resData.code==0){alert(resData.msg);}else{window.location.href="/";}},error:function(){alert("提示:登錄數(shù)據(jù)查詢失敗")}})}})/***用戶進(jìn)行登錄的校驗(yàn)、驗(yàn)證**/@RequestMapping(value="/userLoginVerify",method=RequestMethod.POST)@ResponseBodypublicStringloginVerify(HttpServletRequestrequest,HttpServletResponseresponse){//新建Map返回前臺(tái)展示Map<String,Object>map=newHashMap<String,Object>();//獲取用戶名、密碼、以及是否記住的標(biāo)志//獲取用戶賬號(hào)

Stringusername=request.getParameter("userCount");

//用戶密碼Stringpassword=request.getParameter("pass");

//記住賬號(hào)Stringrememberme=request.getParameter("rememberIt");TUseruser=tUserService.getUserByCount(username);if(user==null){//如果查詢用戶為空

//放標(biāo)志位為0map.put("code",0);map.put("msg","提示:用戶名無效!");}elseif(!user.getUserByPassword().equals(password)){map.put("code",0);//放標(biāo)志位為0map.put("msg","提示:輸入的密碼錯(cuò)誤!");//提示:輸入的密碼錯(cuò)誤}elseif(user.getUserByStatus()==0){map.put("code",0);map.put("msg","用戶禁用狀態(tài)!");}else{//此為如果登錄成功,map.put("code",1);map.put("msg","提示:登錄成功");//然后添加用戶信息到session域request.getSession().setAttribute("user",user);//并且記住賬戶密碼的cookieif(rememberIt!=null){//需要先創(chuàng)建username的CookieCookieusernameCookie=newCookie("username",username);//默認(rèn)系統(tǒng)設(shè)置有效期為3天nameCookie.setMaxAge(60*60*24*3);

//需要先創(chuàng)建password的CookieCookiepasswordCookie=newCookie("password",password);pwdCookie.setMaxAge(60*60*24*3);

//在response域中添加cookieresponse.addCookie(usernameCookie);response.addCookie(passwordCookie);}}

//將返回前臺(tái)的信息通過json工具轉(zhuǎn)為字符串Stringresult=newJSONObject(map).toString();returnresult;}4.4.3系統(tǒng)前臺(tái)用戶個(gè)人中心模塊功能該模塊可以讓系統(tǒng)前臺(tái)用戶對(duì)個(gè)人信息及時(shí)進(jìn)行修改、主要展示的內(nèi)容為用戶名、密碼、手機(jī)號(hào)、郵箱賬號(hào)等進(jìn)行修改。以及可以修改自己的個(gè)人收貨地址,針對(duì)自己的收貨地址進(jìn)行管理。前臺(tái)用戶信息修改效果如圖4-4所示。圖4-4用戶信息修改展示圖該功能實(shí)現(xiàn)主要代碼如下://系統(tǒng)前臺(tái)用戶修改個(gè)人信息

$("#updateInfo-btn").click(function(){

$.ajax({

async:false,

type:"POST",

url:'/home/user/editSubmit',//訪問登錄者的個(gè)人信息展示

contentType:"application/x-www-form-urlencoded;",

data:$("#loginUserForm").serialize(),//表格初始化

dataType:"json",//數(shù)據(jù)為json格式

success:function(resData){

if(resData.code==0){//更新個(gè)人信息成功加載新頁面

layer.alert(resData.msg);

location.reload();

}else{

layer.alert(resData.msg);

location.reload();

}

}

})

})//用戶個(gè)人信息操作保存、提交

@RequestMapping(value={"/user/editSubmit"})

@ResponseBody

publicStringeditSubmitUser(HttpSessionsession,TUseruser){

//新建視圖

ModelAndViewmodelandview=newModelAndView();

//新建Map作為返回前臺(tái)展示使用

Map<String,Object>map=newHashMap<String,Object>();

//更新用戶信息

try{

tUserService.updateUser(user);

map.put("code",0);

map.put("msg","修改信息成功!");

}catch(Exceptione){

map.put("code",1);

map.put("msg","修改信息失敗!");

}

//將map中前臺(tái)展示的信息,轉(zhuǎn)為字符串的形式

Stringresult=newJSONObject(map).toString();

returnresult;

}4.4.4商品管理功能商品管理功能是本系統(tǒng)系統(tǒng)的重要功能之一,本功能主要為管理員編輯、添加前臺(tái)顯示的商品。并且管理員可以對(duì)該商品進(jìn)行刪除、編輯、修改的操作。還可以隨便對(duì)商品進(jìn)行下架的管理。商品管理界面如圖4-5所示。圖4-5商品管理展示圖商品管理主要代碼如下:layui.use(['form','table'],function(){

vartable=layui.table,

form=layui.form;

//第一個(gè)實(shí)例

table.render({

elem:'#goodsTable'

,defaultToolbar:[]

,toolbar:'#toolbarDemo'

,url:'/admin/book/showBookList'//數(shù)據(jù)接口

,page:true//開啟分頁

,cellMinWidth:80

,cols:[[//表頭

{field:'bid',type:'checkbox',checkbox:true,width:16}

,{field:'bid',title:'Id',width:60}

,{field:'bname',title:'商品名稱',align:'center',width:100}

,{field:'bimage',title:'圖片',align:'center',width:200}

,{field:'bpirce',title:'價(jià)格(元)',align:'center',width:100}

,{field:'bamount',title:'庫存(件)',align:'center',width:100}

,{field:'bwriter',title:'作者',align:'center',width:100}

,{field:'bprinter',title:'出版社',align:'center',width:120}

,{field:'bStatus',title:'狀態(tài)',align:'center',width:80

,templet:function(res){return"下架"}

}

,{

fixed:'right',title:'操作',align:'center',toolbar:'#barDemo',width:200

}

]]

,parseData:function(resData){//新建表解析組件的數(shù)據(jù)

return{

"code":0,//解析接口狀態(tài)

"msg":'',//解析提示文本

"count":resData.total,

"data":resData

};

},

done:function(res){

$("[data-field='bStatus']").children().each(function(){

if($(this).text()=='0'){

$(this).text('下架');

}elseif($(this).text()=='1'){

$(this).text('上架');

}

});

}

});

varbookIds=[];//保存數(shù)據(jù)信息

//監(jiān)聽表格復(fù)選框選擇

table.on('checkbox(goodsTable)',function(obj){

bookIds.push(obj.data.bid);

console.log(bookIds);

});

functiongetBatchUp(){

$.ajax({

async:false,

type:"POST",//putItUpOrDown使用post請(qǐng)求

url:'/home/book/putItUpOrDown',

contentType:"application/x-www-form-urlencoded;charset=utf-8",

data:{'bookIds':bookIds,'flag':'1'},

dataType:"JSON",

traditional:true,//是否淺層序列化默認(rèn)為false組織深層序列化才能保證后臺(tái)獲取到信息

success:function(resdata){

if(resdata.code===0){//如果為0則跳轉(zhuǎn)到支付頁面

layer.alert(resdata.msg);

location.href="/home/cart/toPayView";

}else{//否則彈出提示

layer.alert(resdata.msg);

}

}

})

}

//上架、下架按鈕事件

table.on('toolbar(toolbarDemo)',function(obj){

//判斷狀態(tài)事件的類型是選中、還是未選中

varcheckStatus=table.checkStatus(obj.config.id);

switch(obj.event){

case'getBatchUp':

vardata=checkStatus.data;//獲取到選擇的數(shù)據(jù),然后彈出展示

layer.alert(JSON.stringify(data));

break;

};

});4.4.5商品分類功能管理員可以自己添加商品分類,這樣更加方便管理員進(jìn)行商品管理。商品分類頁面如圖4-6所示。圖4-6商品分類功能展示圖商品分類主要設(shè)計(jì)代碼如下:/**

*系統(tǒng)后臺(tái)進(jìn)行分類添加

*/

@RequestMapping(value="/insertCategorySubmit",method=RequestMethod.POST)

publicStringinsertCategorySubmit(TCategorycategory){

//添加目錄的操作

tCategoryService.insertCategory(category);

return"redirect:/admin/category";//轉(zhuǎn)發(fā)到相關(guān)的目錄管理頁面

}

/**

*編輯分類提交

*

*@paramcategory目錄分類管理

*@return重定向到后臺(tái)管理的目錄頁面

*/

@RequestMapping(value="/editSubmit"

溫馨提示

  • 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)論