基于Java的圖書(shū)推 薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于Java的圖書(shū)推 薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于Java的圖書(shū)推 薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于Java的圖書(shū)推 薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于Java的圖書(shū)推 薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章緒論1.1背景分析隨著教育大數(shù)據(jù)的蓬勃發(fā)展,各大高等學(xué)府紛紛興建起數(shù)字化圖書(shū)館,以滿(mǎn)足日益增長(zhǎng)的數(shù)字化需求。本文在研究國(guó)內(nèi)外相關(guān)文獻(xiàn)的基礎(chǔ)上,提出了一種新的圖書(shū)推薦算法。數(shù)字圖書(shū)館為讀者提供了隨時(shí)隨地查閱書(shū)籍的便利,相較于傳統(tǒng)的紙質(zhì)圖書(shū)借閱方式,更受歡迎。因此,許多人選擇利用數(shù)字圖書(shū)館來(lái)查找資料或者閱讀相關(guān)文獻(xiàn)?,F(xiàn)今數(shù)字圖書(shū)館中的圖書(shū)推薦功能,旨在幫助讀者更快地找到自己鐘愛(ài)的電子書(shū)籍或期刊,但其效果并不盡如人意。這是因?yàn)槟壳按蟛糠值耐扑]算法不能根據(jù)不同用戶(hù)提供的閱讀偏好來(lái)進(jìn)行個(gè)性化選擇。為此,需要建設(shè)圖書(shū)推薦系統(tǒng)來(lái)實(shí)現(xiàn)向讀者進(jìn)行個(gè)性化推薦。1.2研究目的和意義隨著中國(guó)城市現(xiàn)代化進(jìn)程的不斷加速,網(wǎng)絡(luò)信息的數(shù)量和傳播速度已經(jīng)超越了傳統(tǒng)的紙質(zhì)傳媒,成為了獲取信息最為迅速的渠道之一。圖書(shū)推薦系統(tǒng)的高效和優(yōu)質(zhì)服務(wù)已成為圖書(shū)閱讀不可或缺的重要組成部分,若能采用一套先進(jìn)的圖書(shū)推薦系統(tǒng),必將為人們的圖書(shū)閱讀服務(wù)帶來(lái)革命性的飛躍。圖書(shū)是一種特殊的商品,具有其特殊性,在圖書(shū)館中開(kāi)展圖書(shū)推薦工作對(duì)于提高讀者借閱效率以及提升館藏質(zhì)量有著至關(guān)重要的作用。隨著現(xiàn)代社會(huì)的發(fā)展,圖書(shū)推薦已成為不可或缺的需求之一,然而當(dāng)前的圖書(shū)推薦存在著規(guī)范性不足等問(wèn)題,這些問(wèn)題極大地制約了圖書(shū)推薦和人民閱讀的進(jìn)一步發(fā)展。本文在總結(jié)前人研究成果基礎(chǔ)上,提出基于數(shù)據(jù)挖掘技術(shù)的圖書(shū)館個(gè)性化圖書(shū)推薦系統(tǒng)。通過(guò)對(duì)圖書(shū)推薦系統(tǒng)的需求分析,結(jié)合現(xiàn)代管理的新理念,對(duì)現(xiàn)有圖書(shū)推薦現(xiàn)狀進(jìn)行了深入研究,并進(jìn)行了系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。在設(shè)計(jì)過(guò)程中,充分考慮到用戶(hù)的個(gè)性化需要,以提高圖書(shū)館的服務(wù)水平為目的。本系統(tǒng)的實(shí)施將有助于人們養(yǎng)成良好的閱讀習(xí)慣,提高效益,輕松實(shí)現(xiàn)多方共贏(yíng)的目標(biāo)。1.3國(guó)內(nèi)外研究現(xiàn)狀相較于國(guó)外發(fā)展,在個(gè)性化推薦方面,國(guó)內(nèi)起步較晚,2012年才由京東引入推薦系統(tǒng),且使用算法非?;A(chǔ);直到2015年個(gè)性化推薦才獲得了巨大的發(fā)展機(jī)遇。隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和智能手機(jī)用戶(hù)數(shù)量的迅猛增長(zhǎng),人們對(duì)閱讀體驗(yàn)提出更高的要求。雖然國(guó)內(nèi)的一些圖書(shū)館已經(jīng)有自己的個(gè)性化圖書(shū)推薦平臺(tái)和應(yīng)用,但是這些平臺(tái)主要還是集中在高校、科研機(jī)構(gòu)等大型單位。目前,個(gè)性化推薦系統(tǒng)在成熟領(lǐng)域的應(yīng)用仍有待加強(qiáng),推薦方式單一,缺乏針對(duì)性。因此,國(guó)內(nèi)的很多學(xué)者開(kāi)始研究和開(kāi)發(fā)基于用戶(hù)偏好的個(gè)性化推薦系統(tǒng),并取得了較高的成果。2020年蒲曄芬在《基于動(dòng)態(tài)關(guān)聯(lián)計(jì)算的圖書(shū)館個(gè)性推薦系統(tǒng)研究》文章中提出了基于目標(biāo)跟蹤算法的圖書(shū)館個(gè)性化推薦系統(tǒng),通過(guò)對(duì)用戶(hù)操作的日志信息及操作數(shù)據(jù)的分析計(jì)算,得到用戶(hù)的興趣度,通過(guò)改進(jìn)用戶(hù)相似度的計(jì)算來(lái)提高圖書(shū)推薦的準(zhǔn)確度[3]。運(yùn)用算法優(yōu)化技術(shù),更好更直觀(guān)的了解用戶(hù)的需求,使推薦的數(shù)據(jù)更精確,更容易滿(mǎn)足用戶(hù)的需求,更好的推動(dòng)了圖書(shū)推薦系統(tǒng)的發(fā)展。國(guó)外推出的個(gè)性化推薦系統(tǒng)起步較早,開(kāi)發(fā)較早,相對(duì)來(lái)說(shuō)技術(shù)上已經(jīng)非常成熟。在上世紀(jì)90年代,Resnick等人首次提出了推薦系統(tǒng)的研究概念,這標(biāo)志著該領(lǐng)域的探索開(kāi)始了。隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)已經(jīng)逐漸普及到千家萬(wàn)戶(hù)中,在這樣的背景下,人們對(duì)于個(gè)性化推薦系統(tǒng)的需求越來(lái)越迫切,這就促使了推薦系統(tǒng)的出現(xiàn)和應(yīng)用。隨著時(shí)間的推移,推薦系統(tǒng)的概念逐漸被研究人員所采用,并逐漸演變?yōu)樗惴ㄑ芯款I(lǐng)域中不可或缺的重要組成部分。2023年,SrinathR.,RavindranGunnapudiSaiSiddharth,KokkallaLaxmiNarasimha等人在《BookRecommendationBasedonEmotionintheOnlineLibraryUsingCNN》文章中通過(guò)運(yùn)用關(guān)聯(lián)規(guī)則和協(xié)同過(guò)濾挖掘算法對(duì)圖書(shū)館圖書(shū)借閱記錄進(jìn)行信息挖掘,得到了讀者之間借閱愛(ài)好的關(guān)聯(lián)性以及圖書(shū)之間的關(guān)聯(lián)性[22]。為了解決圖書(shū)館圖書(shū)推薦效率低下的問(wèn)題,研究了一種基于數(shù)據(jù)分析的圖書(shū)推薦系統(tǒng),并對(duì)圖書(shū)館以往的閱讀數(shù)據(jù)進(jìn)行了統(tǒng)計(jì)、數(shù)據(jù)分析和預(yù)測(cè)。1.4研究?jī)?nèi)容本文基于需求分析,對(duì)圖書(shū)推薦系統(tǒng)進(jìn)行了設(shè)計(jì)和實(shí)現(xiàn)。主要內(nèi)容包括系統(tǒng)界面設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)流程設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)以及系統(tǒng)測(cè)試。針對(duì)系統(tǒng)功能模塊,詳細(xì)介紹了其設(shè)計(jì)思路和實(shí)現(xiàn)方法,并對(duì)系統(tǒng)的關(guān)鍵技術(shù)和部分源代碼進(jìn)行了解釋和說(shuō)明。本系統(tǒng)的主要功能有:用戶(hù)注冊(cè),用戶(hù)登錄,熱門(mén)圖書(shū)推薦,圖書(shū)類(lèi)型管理,熱門(mén)圖書(shū)管理,圖書(shū)評(píng)分管理,管理員信息管理,交流論壇,權(quán)限申請(qǐng)管理,用戶(hù)管理等功能。1.5論文組織架構(gòu)本文的結(jié)構(gòu)安排如下:第1章:緒論。介紹了背景分析,研究目的及意義,國(guó)內(nèi)外研究現(xiàn)狀,研究?jī)?nèi)容以及論文結(jié)構(gòu)安排。第2章:相關(guān)理論和技術(shù)。介紹了程序的開(kāi)發(fā)環(huán)境和使用的技術(shù)工具。第3章:系統(tǒng)分析。分析了圖書(shū)推薦系統(tǒng)的可行性,需求分析以及數(shù)據(jù)流程。第4章:系統(tǒng)設(shè)計(jì)。對(duì)圖書(shū)推薦系統(tǒng)作相應(yīng)設(shè)計(jì),包括功能模塊設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)第5章:系統(tǒng)實(shí)現(xiàn)。對(duì)圖書(shū)推薦系統(tǒng)的各個(gè)功能模塊進(jìn)行實(shí)現(xiàn)。第6章:系統(tǒng)測(cè)試。對(duì)圖書(shū)推薦系統(tǒng)中各主要功能模塊進(jìn)行了測(cè)試并顯示出測(cè)試結(jié)果。第2章相關(guān)理論和技術(shù)2.1Java簡(jiǎn)介1995年5月,SunMicrosystems公司推出了一款高度專(zhuān)業(yè)化的編程語(yǔ)言——Java編程語(yǔ)言,為行業(yè)注入了新的技術(shù)活力。隨著互聯(lián)網(wǎng)技術(shù)和移動(dòng)設(shè)備技術(shù)的蓬勃發(fā)展,越來(lái)越多的學(xué)者開(kāi)始對(duì)個(gè)性化推薦技術(shù)產(chǎn)生濃厚興趣,并取得了許多研究成果。Java平臺(tái)與Java程序設(shè)計(jì)相互融合,形成了一個(gè)高度綜合的Java語(yǔ)言體系。它為各種應(yīng)用程序代碼提供了統(tǒng)一的規(guī)范,同時(shí)也使得軟件開(kāi)發(fā)人員能夠更加快速地設(shè)計(jì)出高質(zhì)量的應(yīng)用程序。Java的跨平臺(tái)性、動(dòng)態(tài)性和可移植性等特性,使其逐漸獲得廣大編程愛(ài)好者的認(rèn)可,Java技術(shù)的不斷創(chuàng)新是其穩(wěn)定的關(guān)鍵所在,而這種創(chuàng)新不斷推動(dòng)著Java技術(shù)的發(fā)展。Java作為一門(mén)卓越的編程語(yǔ)言,已經(jīng)在互聯(lián)網(wǎng)上獲得廣泛應(yīng)用,成為了現(xiàn)代社會(huì)中不可或缺的重要組成部分。Java語(yǔ)言的廣泛應(yīng)用為未來(lái)的軟件維護(hù)帶來(lái)了極大的便利,這也是選擇Java語(yǔ)言的主要原因之一。此外,它還具有很好的擴(kuò)展性,可以根據(jù)實(shí)際情況來(lái)修改程序,使得其更加符合企業(yè)需求??偟膩?lái)說(shuō),采用Java進(jìn)行系統(tǒng)開(kāi)發(fā)是向用戶(hù)提供有效可靠服務(wù)的優(yōu)秀選擇。2.2MySQL特點(diǎn) 1、功能強(qiáng)大MySQL為數(shù)據(jù)庫(kù)存儲(chǔ)提供各種引擎,每種引擎具有各自特有的優(yōu)點(diǎn),適合各種應(yīng)用場(chǎng)景,使用者可根據(jù)需要選擇最合適的引擎來(lái)處理日訪(fǎng)問(wèn)量在幾億次以上高強(qiáng)度Web站點(diǎn)搜索任務(wù)。在這些數(shù)據(jù)庫(kù)中使用各種數(shù)據(jù)查詢(xún)語(yǔ)句來(lái)進(jìn)行訪(fǎng)問(wèn)是一個(gè)有效且快速的方法。Mysql提供了多種功能,包括事務(wù)、視圖、存儲(chǔ)過(guò)程和觸發(fā)器等。2、支持跨平臺(tái)MySQL支持至少20種以上的開(kāi)發(fā)平臺(tái),包括Linux、Windows、FreeBSD、IBMAIX、AIX、FreeBSD等。在這些數(shù)據(jù)庫(kù)中使用各種數(shù)據(jù)查詢(xún)語(yǔ)句來(lái)進(jìn)行訪(fǎng)問(wèn)是一個(gè)有效且快速的方法。程序的可移植性使得無(wú)論在哪個(gè)平臺(tái)上編寫(xiě)的程序都能夠無(wú)縫遷移,無(wú)需進(jìn)行任何修改。3、運(yùn)行速度快MySQL高速的性能就是它最突出的特征。它通過(guò)使用有效的B樹(shù)磁盤(pán)表壓縮技術(shù)(MyISAM)及索引壓縮技術(shù),使得數(shù)據(jù)傳輸速度得到了極大的提升;同時(shí)采用基于用戶(hù)請(qǐng)求模式的數(shù)據(jù)存儲(chǔ)方式以及支持多種數(shù)據(jù)類(lèi)型的查詢(xún)機(jī)制等技術(shù)。通過(guò)運(yùn)用高度優(yōu)化的類(lèi)庫(kù)和SQL函數(shù),成功實(shí)現(xiàn)了驚人的運(yùn)算速度。4、安全性高高度靈活和安全的權(quán)限和密碼,支持對(duì)基本主機(jī)進(jìn)行驗(yàn)證。通過(guò)在客戶(hù)端使用口令認(rèn)證來(lái)防止非法用戶(hù)訪(fǎng)問(wèn)服務(wù)器。在連接到服務(wù)器時(shí),密碼的傳輸均采用了加密技術(shù),以確保密碼的機(jī)密性和完整性。5、成本低MySQL數(shù)據(jù)庫(kù)完全免費(fèi),用戶(hù)可以在網(wǎng)絡(luò)上下載。6、支持各種開(kāi)發(fā)語(yǔ)言MySQL為各種流行的程序設(shè)計(jì)語(yǔ)言提供了全方位的支持,包括但不限于PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl語(yǔ)言等多種API函數(shù),為用戶(hù)提供了豐富的編程體驗(yàn)。7、數(shù)據(jù)庫(kù)存儲(chǔ)容量大MySQL數(shù)據(jù)庫(kù)的最大有效表尺寸通常由操作系統(tǒng)對(duì)文件大小的限制所決定,而非MySQL內(nèi)部的限制所決定。因此,在進(jìn)行數(shù)據(jù)查詢(xún)時(shí),需要根據(jù)用戶(hù)的需求和實(shí)際情況來(lái)確定是否要把這些信息寫(xiě)入到自己所需存儲(chǔ)量較大的表或者文件中去,這就要求我們必須具有一定的存儲(chǔ)能力。InnoDB存儲(chǔ)引擎將InnoDB表存儲(chǔ)于一個(gè)可容納多個(gè)文件的表空間中,該表空間的最大容量為64TB,足以輕松處理數(shù)以百萬(wàn)計(jì)的大型數(shù)據(jù)庫(kù)記錄。2.3SpringBoot介紹SpingBoot框架繼承了Spring框架的卓越性能,并通過(guò)簡(jiǎn)化配置簡(jiǎn)化了Spring應(yīng)用的構(gòu)建和開(kāi)發(fā),從而提升了其整體性能。它還提供了基于組件的集成接口,使開(kāi)發(fā)者能夠靈活定制應(yīng)用程序,以滿(mǎn)足不同用戶(hù)需求。SpringBoot將多項(xiàng)卓越的框架技術(shù)融合,對(duì)第三方技術(shù)進(jìn)行持續(xù)的簡(jiǎn)化,同時(shí)運(yùn)用啟動(dòng)器有效地解決了工程中的依賴(lài)包沖突和失穩(wěn)等問(wèn)題,從而提升了系統(tǒng)開(kāi)發(fā)效率,簡(jiǎn)化了系統(tǒng)開(kāi)發(fā)操作。Spring框架作為一種開(kāi)源應(yīng)用框架,在Java平臺(tái)上提供了一種具備反轉(zhuǎn)控制特性的容器,以滿(mǎn)足用戶(hù)對(duì)數(shù)據(jù)的需求,從而為用戶(hù)提供了一種高效的數(shù)據(jù)管理方式。這種基于反映像操作和反向編譯技術(shù)的設(shè)計(jì)思路是通過(guò)一個(gè)新的機(jī)制來(lái)解決傳統(tǒng)編程方式存在的問(wèn)題。通過(guò)這種架構(gòu),開(kāi)發(fā)人員可以將更多的精力集中在程序代碼本身上,而非專(zhuān)注于如何更加高效地執(zhí)行這些代碼。同時(shí)由于它允許程序員從一個(gè)源程序出發(fā)直接創(chuàng)建新應(yīng)用程序,從而避免了復(fù)雜的編譯過(guò)程,這也為開(kāi)發(fā)者帶來(lái)很多便利。

第3章系統(tǒng)分析3.1可行性分析3.1.1技術(shù)可行性技術(shù)可行性就是指在系統(tǒng)開(kāi)發(fā)中將采用哪些技術(shù),以何種平臺(tái)為基礎(chǔ),會(huì)套用何種框架和會(huì)采用何種設(shè)計(jì)模式,本系統(tǒng)以Java語(yǔ)言為基礎(chǔ),在Java語(yǔ)言的開(kāi)發(fā)過(guò)程中,SpringBoot框架占據(jù)主導(dǎo)地位,Vue作為前端技術(shù),MySQL作為數(shù)據(jù)庫(kù),Navicat作為數(shù)據(jù)庫(kù)工具,而IDEA則是開(kāi)發(fā)工具的選擇,服務(wù)器建設(shè)以Tomcat為基礎(chǔ),而大部分與此相關(guān)的開(kāi)發(fā)工具均為免費(fèi)。3.1.2經(jīng)濟(jì)可行性所謂經(jīng)濟(jì)可行性就是我國(guó)的發(fā)展進(jìn)程與我國(guó)以往的發(fā)展預(yù)算相一致,發(fā)展全過(guò)程中的費(fèi)用支出得到了清晰的記載,滿(mǎn)足了發(fā)展進(jìn)程的需要。在系統(tǒng)開(kāi)發(fā)完成后,由于考慮到圖書(shū)推薦系統(tǒng)的前景廣闊,其經(jīng)濟(jì)價(jià)值較高,確定了本圖書(shū)推薦系統(tǒng)設(shè)計(jì)開(kāi)發(fā)在經(jīng)濟(jì)上具有可行性。3.1.3操作可行性在將系統(tǒng)移交給使用人員之后,必須確保其具備易操作性和易用性,并且大多數(shù)功能已經(jīng)通過(guò)精心設(shè)計(jì)的圖形界面得以實(shí)現(xiàn),同時(shí)數(shù)據(jù)輸入也必須具有高度的靈活性和完整性,以確保不會(huì)產(chǎn)生任何歧義,從而方便管理員檢查自身信息。所以說(shuō)要想開(kāi)發(fā)出一個(gè)成功的圖書(shū)推薦系統(tǒng),首先需要對(duì)整個(gè)開(kāi)發(fā)項(xiàng)目進(jìn)行充分的調(diào)查和研究,然后再制定詳細(xì)的開(kāi)發(fā)計(jì)劃,這樣才可以保證整個(gè)軟件開(kāi)發(fā)過(guò)程中的科學(xué)性。為了確保系統(tǒng)的簡(jiǎn)潔性和高效性,需要在使用過(guò)程中對(duì)不同等級(jí)的用戶(hù)進(jìn)行權(quán)限管理。另外在系統(tǒng)中還要對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份和恢復(fù)處理,防止因?yàn)閿?shù)據(jù)庫(kù)出現(xiàn)故障而影響到系統(tǒng)正常工作。考慮到多方面的因素,我認(rèn)為本次開(kāi)發(fā)的操作是可行的。3.2需求分析對(duì)系統(tǒng)進(jìn)行功能需求分析,可以進(jìn)一步認(rèn)識(shí)下一步軟件功能需求實(shí)現(xiàn)時(shí),要實(shí)現(xiàn)哪些功能以及沒(méi)有實(shí)現(xiàn)哪些功能。通過(guò)建立需求分析,可以有效避免或及早發(fā)現(xiàn)錯(cuò)誤,從而提升軟件生產(chǎn)效率,降低開(kāi)發(fā)成本,改善軟件品質(zhì)。3.2.1功能需求分析在基于Java的圖書(shū)推薦系統(tǒng)當(dāng)中,用戶(hù)注冊(cè)登錄進(jìn)入系統(tǒng)后,可以進(jìn)入首頁(yè),查看熱門(mén)圖書(shū)信息,了解通知公告,查看個(gè)人中心和交流論壇。用戶(hù)管理、圖書(shū)類(lèi)型管理、熱門(mén)圖書(shū)管理、圖書(shū)評(píng)分管理、權(quán)限申請(qǐng)管理、交流論壇、管理員信息管理和系統(tǒng)管理,均由管理員在后臺(tái)進(jìn)行有效的管理。1用戶(hù)用例用戶(hù)登錄系統(tǒng)后可以查看首頁(yè)、熱門(mén)圖書(shū)、通知公告、交流論壇、個(gè)人中心等。如圖3.1所示:圖3.1用戶(hù)用例圖2管理員用例管理員在后臺(tái)能夠?qū)崿F(xiàn)用戶(hù)管理、圖書(shū)類(lèi)型管理、熱門(mén)圖書(shū)管理、圖書(shū)評(píng)分管理、權(quán)限申請(qǐng)管理、交流論壇、管理員信息管理和系統(tǒng)管理。如圖3.2所示:圖3.2管理員用例圖3.2.2非功能需求分析在圖書(shū)推薦系統(tǒng)的開(kāi)發(fā)過(guò)程中,除了對(duì)業(yè)務(wù)工作本身進(jìn)行關(guān)注外,還必須確保其性能得到充分保障。其中,對(duì)系統(tǒng)非功能性需求是非常重要的一個(gè)部分。對(duì)于圖書(shū)推薦系統(tǒng)的非功能性需求,我們需要從可靠性、穩(wěn)定性、可擴(kuò)展性和易于維護(hù)性四個(gè)方面進(jìn)行深入分析:(1)為確保系統(tǒng)的安全、正常、可靠運(yùn)行,用戶(hù)數(shù)據(jù)在錄入、存儲(chǔ)、傳輸和處理過(guò)程中必須始終保持完整性和一致性,以保障身份訪(fǎng)問(wèn)控制的可靠性。(2)為確保系統(tǒng)的穩(wěn)定運(yùn)行,必須全面考慮數(shù)據(jù)的可靠性要求,以確保系統(tǒng)在運(yùn)行過(guò)程中始終保持高效、可靠的狀態(tài)。在實(shí)際應(yīng)用中,我們需要不斷地對(duì)現(xiàn)有技術(shù)進(jìn)行改進(jìn),并將先進(jìn)的信息技術(shù)融入其中。在追求前沿技術(shù)的同時(shí),也不能忽視系統(tǒng)的穩(wěn)健性,但也不能過(guò)于強(qiáng)調(diào)系統(tǒng)的穩(wěn)健性,而忽視了其運(yùn)行和安全方面的問(wèn)題。(3)在系統(tǒng)設(shè)計(jì)的過(guò)程中,必須充分考慮到業(yè)務(wù)的動(dòng)態(tài)變化,以便在平臺(tái)上實(shí)現(xiàn)靈活的功能擴(kuò)展,以適應(yīng)當(dāng)前的需求。(4)系統(tǒng)的管理和維護(hù)應(yīng)當(dāng)具備高度的易用性和易操作性,以便在出現(xiàn)故障、智能合約升級(jí)或程序維護(hù)等情況下,能夠及時(shí)處理系統(tǒng)的各項(xiàng)關(guān)鍵參數(shù),從而確保系統(tǒng)的高效穩(wěn)定運(yùn)行。3.3數(shù)據(jù)流程分析在注冊(cè)登錄賬號(hào)之前,對(duì)于新用戶(hù),需要進(jìn)行賬號(hào)注冊(cè),而對(duì)于老用戶(hù),則直接進(jìn)行登錄。注冊(cè)和登錄流程圖如圖3.3、3.4所示:1.注冊(cè)流程圖圖3.3注冊(cè)流程圖2.登錄流程圖圖3.4登錄流程圖第4章系統(tǒng)設(shè)計(jì)4.1功能模塊設(shè)計(jì)經(jīng)過(guò)對(duì)系統(tǒng)功能的分析,圖書(shū)推薦系統(tǒng)主要包括以下幾個(gè)核心功能模塊:用戶(hù)管理、熱門(mén)圖書(shū)推薦、圖書(shū)類(lèi)型管理、熱門(mén)圖書(shū)管理、圖書(shū)評(píng)分管理、權(quán)限申請(qǐng)管理、交流論壇、管理員信息管理和系統(tǒng)管理。系統(tǒng)的功能模塊如圖4.1所示:圖4.1系統(tǒng)功能模塊圖4.2數(shù)據(jù)庫(kù)設(shè)計(jì)4.2.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)是對(duì)系統(tǒng)中實(shí)體與實(shí)體之間的相互關(guān)系進(jìn)行深入分析的過(guò)程,概念模型將實(shí)體抽象化,通過(guò)對(duì)實(shí)體之間的屬性分析,能夠清晰地描述出該實(shí)體類(lèi)的信息結(jié)構(gòu),再由我們將這個(gè)信息結(jié)構(gòu)換為具體的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)。根據(jù)功能需求分析,確定了系統(tǒng)中主要實(shí)體有管理員、用戶(hù)、熱門(mén)圖書(shū)、通知公告、管理申請(qǐng)、交流論壇。1.管理員實(shí)體。賬戶(hù)、密碼和角色是管理員實(shí)體所具備的屬性。如圖4.2所示:圖4.2管理員實(shí)體圖2.用戶(hù)實(shí)體。賬戶(hù)、性別、聯(lián)系方式、頭像、密碼、姓名、以及昵稱(chēng),都是構(gòu)成用戶(hù)實(shí)體的重要屬性。如圖4.3所示:圖4.3用戶(hù)實(shí)體圖3.熱門(mén)圖書(shū)實(shí)體。熱門(mén)圖書(shū)實(shí)體的屬性包括圖書(shū)名稱(chēng)、作者、圖書(shū)評(píng)分、封面、詳情、出版社、圖書(shū)簡(jiǎn)介、圖書(shū)類(lèi)型和圖書(shū)編號(hào)。這些屬性可以幫助系統(tǒng)對(duì)熱門(mén)圖書(shū)進(jìn)行分類(lèi)、排序、搜索等操作,以提高用戶(hù)的體驗(yàn)。如圖4.4所示:圖4.4熱門(mén)圖書(shū)實(shí)體圖4.通知公告實(shí)體。通知公告實(shí)體的屬性包括標(biāo)題、簡(jiǎn)介、內(nèi)容和圖片。如圖4.5所示:圖4.5通知公告實(shí)體圖5.管理申請(qǐng)實(shí)體。管理申請(qǐng)實(shí)體的屬性包括申請(qǐng)編號(hào)、申請(qǐng)?jiān)?、申?qǐng)時(shí)間、用戶(hù)賬號(hào)、用戶(hù)姓名、聯(lián)系方式、是否審核和審核回復(fù)。如圖4.6所示:圖4.6管理申請(qǐng)實(shí)體圖6.交流論壇實(shí)體。交流論壇的實(shí)體屬性包括帖子標(biāo)題和帖子內(nèi)容。如圖4.7所示:圖4.7交流論壇實(shí)體圖7.根據(jù)抽象出的實(shí)體及實(shí)體間聯(lián)系構(gòu)建了E-R圖。E-R圖如圖4.8所示:圖4.8E-R圖4.2.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)對(duì)于數(shù)據(jù)的存取效率有直接影響。具體表設(shè)計(jì)如下:(1)管理員表users“管理員表users”用來(lái)記錄管理員的信息。users的結(jié)構(gòu)如表4.1所示。表4.1管理員表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵usernamevarchar10用戶(hù)名passwordvarchar10密碼rolevarchar10角色管理員addtimetimestamp新增時(shí)間CURRENT_TIMESTAMP(2)token表“token表”是用來(lái)記錄用戶(hù)token的信息。token的結(jié)構(gòu)如表4.2所示。表4.2token表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵續(xù)表4.2token表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值useridbigint用戶(hù)idusernamevarchar10用戶(hù)名tablenamevarchar10表名rolevarchar10角色tokenvarchar20密碼addtimetimestamp新增時(shí)間CURRENT_TIMESTAMPexpiratedtimetimestamp過(guò)期時(shí)間CURRENT_TIMESTAMP(3)通知公告表news“通知公告表news”是用來(lái)記錄通知公告信息。news的結(jié)構(gòu)如表4.3所示。表4.3通知公告表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPtitlevarchar20標(biāo)題introductionlongtext4294967295簡(jiǎn)介picturelongtext4294967295圖片contentlongtext4294967295內(nèi)容(4)用戶(hù)表yonghu“用戶(hù)表yonghu”是用來(lái)記錄用戶(hù)的信息。yonghu的結(jié)構(gòu)如表4.4所示。表4.4用戶(hù)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPyonghuzhanghaovarchar20用戶(hù)賬號(hào)mimavarchar20密碼續(xù)表4.4用戶(hù)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值yonghuxingmingvarchar10用戶(hù)姓名yonghunichengvarchar10用戶(hù)昵稱(chēng)touxianglongtext4294967295頭像xingbievarchar10性別lianxifangshivarchar20聯(lián)系方式(5)熱門(mén)圖書(shū)章節(jié)表chapterrementushu“熱門(mén)圖書(shū)章節(jié)表chapterrementushu”是用來(lái)記錄熱門(mén)圖書(shū)章節(jié)的信息。chapterrementushu的結(jié)構(gòu)如表4.5所示。表4.5熱門(mén)圖書(shū)章節(jié)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPrefidbigint關(guān)聯(lián)表idchapternumint章節(jié)數(shù)chaptertitlevarchar20章節(jié)標(biāo)題contentlongtext4294967295章節(jié)內(nèi)容(6)管理申請(qǐng)表guanlishenqing“管理申請(qǐng)表guanlishenqing”是用來(lái)記錄管理申請(qǐng)的信息。guanlishenqing的結(jié)構(gòu)如表4.6所示。表4.6管理申請(qǐng)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPshenqingbianhaovarchar20申請(qǐng)編號(hào)shenqingyuanyinvarchar20申請(qǐng)?jiān)騭henqingshijiandate申請(qǐng)時(shí)間yonghuzhanghaovarchar20用戶(hù)賬號(hào)續(xù)表4.6管理申請(qǐng)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值yonghuxingmingvarchar10用戶(hù)姓名lianxifangshivarchar20聯(lián)系方式sfshvarchar10是否審核待審核shhflongtext4294967295審核回復(fù)(7)交流論壇表forum“交流論壇表forum”是用來(lái)記錄交流論壇的信息。forum的結(jié)構(gòu)如表4.7所示。表4.7交流論壇表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPtitlevarchar20帖子標(biāo)題contentlongtext4294967295帖子內(nèi)容parentidbigint父節(jié)點(diǎn)iduseridbigint用戶(hù)idusernamevarchar20用戶(hù)名avatarurllongtext4294967295頭像isdonevarchar20狀態(tài)(8)熱門(mén)圖書(shū)評(píng)論表discussrementushu“熱門(mén)圖書(shū)評(píng)論表discussrementushu”是用來(lái)記錄熱門(mén)圖書(shū)評(píng)論的信息。discussrementushu的結(jié)構(gòu)如表4.8所示。表4.8熱門(mén)圖書(shū)評(píng)論表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPrefidbigint關(guān)聯(lián)表iduseridbigint用戶(hù)idavatarurllongtext4294967295頭像續(xù)表4.8熱門(mén)圖書(shū)評(píng)論表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值nicknamevarchar20用戶(hù)名contentlongtext4294967295評(píng)論內(nèi)容replylongtext4294967295回復(fù)內(nèi)容(9)圖書(shū)評(píng)分表tushupingfen“圖書(shū)評(píng)分表tushupingfen”是用來(lái)記錄圖書(shū)評(píng)分的信息。tushupingfen的結(jié)構(gòu)如表4.9所示。表4.9圖書(shū)評(píng)分表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPtushumingchengvarchar20圖書(shū)名稱(chēng)fengmianlongtext4294967295封面tushuleixingvarchar20圖書(shū)類(lèi)型yonghuzhanghaovarchar20用戶(hù)賬號(hào)yonghunichengvarchar10用戶(hù)昵稱(chēng)tushupingfenint圖書(shū)評(píng)分pingjiazhanghaovarchar20評(píng)價(jià)賬號(hào)pingjiashijiandate評(píng)價(jià)時(shí)間crossuseridbigint跨表用戶(hù)idcrossrefidbigint跨表主鍵id(10)圖書(shū)類(lèi)型表tushuleixing“圖書(shū)類(lèi)型表tushuleixing”是用來(lái)記錄圖書(shū)類(lèi)型的信息。tushuleixing的結(jié)構(gòu)如表4.10所示。表4.10圖書(shū)類(lèi)型表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMP續(xù)表4.10圖書(shū)類(lèi)型表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值tushuleixingvarchar20圖書(shū)類(lèi)型(11)熱門(mén)圖書(shū)表rementushu“熱門(mén)圖書(shū)表rementushu”是用來(lái)記錄熱門(mén)圖書(shū)的信息。rementushu的結(jié)構(gòu)如表4.11所示。表4.11熱門(mén)圖書(shū)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPtushubianhaovarchar20圖書(shū)編號(hào)tushumingchengvarchar20圖書(shū)名稱(chēng)fengmianlongtext4294967295封面tushuleixingvarchar20圖書(shū)類(lèi)型tushujianjievarchar50圖書(shū)簡(jiǎn)介zuozhevarchar10作者chubanshevarchar20出版社tushupingfenvarchar20圖書(shū)評(píng)分xiangqinglongtext4294967295詳情yonghuzhanghaovarchar20用戶(hù)賬號(hào)yonghunichengvarchar10用戶(hù)昵稱(chēng)shangchuanshijiandate上傳時(shí)間sfshvarchar10是否審核待審核shhflongtext4294967295審核回復(fù)thumbsupnumint贊0crazilynumint踩0clicktimedatetime最近點(diǎn)擊時(shí)間clicknumint點(diǎn)擊次數(shù)0第5章系統(tǒng)實(shí)現(xiàn)5.1實(shí)現(xiàn)環(huán)境本系統(tǒng)的開(kāi)發(fā)環(huán)境為:開(kāi)發(fā)語(yǔ)言:Java框架:SpringBootJDK版本:JDK1.8服務(wù)器:Tomcat7數(shù)據(jù)庫(kù):MySQL5.7數(shù)據(jù)庫(kù)工具:Navicat11開(kāi)發(fā)軟件:IDEAMaven包:Maven3.3.9瀏覽器:谷歌瀏覽器5.2登錄注冊(cè)在進(jìn)行用戶(hù)注冊(cè)的過(guò)程中,需要提供賬號(hào)、密碼、姓名、昵稱(chēng)、性別以及聯(lián)系方式等相關(guān)信息,以確保注冊(cè)的安全性和有效性。注冊(cè)界面如圖5.1所示:圖5.1用戶(hù)注冊(cè)界面當(dāng)用戶(hù)需要登錄時(shí),需要輸入個(gè)人賬號(hào)和密碼,然后點(diǎn)擊“登錄”按鈕完成登錄。登錄界面如圖5.2所示:圖5.2用戶(hù)登錄界面您可以選擇以用戶(hù)或管理員身份登錄。管理員登錄后可以訪(fǎng)問(wèn)后臺(tái)管理系統(tǒng),輸入正確的用戶(hù)名和密碼后會(huì)進(jìn)入后臺(tái)管理主頁(yè)。后臺(tái)登錄界面如圖5.3所示:圖5.3后臺(tái)登錄界面當(dāng)用戶(hù)點(diǎn)擊注冊(cè)按鈕后,如果填寫(xiě)了所有必填信息并符合要求,系統(tǒng)會(huì)提示用戶(hù)注冊(cè)成功;否則,系統(tǒng)會(huì)提示注冊(cè)失敗。注冊(cè)成功界面如圖5.4所示:圖5.4用戶(hù)注冊(cè)成功界面用戶(hù)在登錄頁(yè)面輸入用戶(hù)名和密碼后,點(diǎn)擊“登錄”按鈕,系統(tǒng)會(huì)自動(dòng)提示登錄成功,并跳轉(zhuǎn)到個(gè)人中心頁(yè)面;如果登錄失敗,系統(tǒng)會(huì)提示錯(cuò)誤。個(gè)人中心界面如圖5.5所示:圖5.5個(gè)人中心界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@IgnoreAuth @PostMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error("賬號(hào)或密碼不正確"); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); }5.3熱門(mén)圖書(shū)推薦以用戶(hù)身份登錄系統(tǒng)后,可以點(diǎn)擊“熱門(mén)圖書(shū)”按鈕,并跳轉(zhuǎn)到熱門(mén)圖書(shū)界面。如圖5.6所示;用戶(hù)可以根據(jù)需要搜索、評(píng)論和評(píng)分熱門(mén)圖書(shū)。熱門(mén)圖書(shū)評(píng)論界面如圖5.7所示:圖5.6熱門(mén)圖書(shū)界面圖5.7熱門(mén)圖書(shū)評(píng)論界面作為用戶(hù)訪(fǎng)問(wèn)系統(tǒng)時(shí),訪(fǎng)問(wèn)首頁(yè)界面,首頁(yè)界面中熱門(mén)圖書(shū)的推薦均按點(diǎn)擊量大小進(jìn)行排名,點(diǎn)擊量大排名靠前的圖書(shū)會(huì)優(yōu)先顯示出來(lái)。熱門(mén)圖書(shū)推薦界面如圖5.8所示:圖5.8熱門(mén)圖書(shū)推薦界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@IgnoreAuth@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params,RementushuEntityrementushu, HttpServletRequestrequest){EntityWrapper<RementushuEntity>ew=newEntityWrapper<RementushuEntity>(); PageUtilspage=rementushuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,rementushu),params),params));returnR.ok().put("data",page);}5.4交流論壇以用戶(hù)身份登錄到系統(tǒng)中,點(diǎn)擊交流論壇,交流論壇界面如圖5.9所示:圖5.9交流論壇界面進(jìn)入交流論壇頁(yè)面后,可以點(diǎn)擊“發(fā)布帖子”按鈕,跳轉(zhuǎn)到發(fā)布帖子界面。如圖5.10所示:圖5.10發(fā)布帖子界面在發(fā)布帖子頁(yè)面輸入標(biāo)題和內(nèi)容后,點(diǎn)擊“發(fā)布帖子”按鈕即可成功發(fā)布帖子。帖子發(fā)布成功界面如圖5.11所示:圖5.11帖子發(fā)布成功界面在進(jìn)入交流論壇頁(yè)面后,用戶(hù)可以點(diǎn)擊帖子查看所發(fā)布的內(nèi)容。帖子信息界面如圖5.12所示:圖5.12帖子信息界面。在進(jìn)入帖子信息頁(yè)面后,用戶(hù)可以通過(guò)點(diǎn)擊“評(píng)論”按鈕對(duì)帖子進(jìn)行評(píng)論。帖子評(píng)論界面如圖5.13所示:圖5.13帖子評(píng)論界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/query")

publicRquery(ForumEntityforum){

EntityWrapper<ForumEntity>ew=newEntityWrapper<ForumEntity>();

ew.allEq(MPUtil.allEQMapPre(forum,"forum"));

ForumViewforumView=forumService.selectView(ew);

returnR.ok("查詢(xún)交流論壇成功").put("data",forumView);

}以管理員身份登錄系統(tǒng)后,進(jìn)入交流論壇管理界面。在此界面,點(diǎn)擊帖子標(biāo)題可以進(jìn)行搜索,跳轉(zhuǎn)到所搜索帖子的詳細(xì)信息。同時(shí)還可以對(duì)帖子進(jìn)行增刪改查操作。交流論壇管理界面如圖5.14所示:圖5.14交流論壇管理界面進(jìn)入管理交流論壇的頁(yè)面,在其中選擇欲刪除的帖子,并點(diǎn)擊“刪除”按鈕。帖子刪除界面如圖5.15所示:圖5.15帖子刪除界面進(jìn)入帖子刪除頁(yè)面后,點(diǎn)擊“確認(rèn)”按鈕即可刪除帖子。帖子刪除成功界面如圖5.16所示:圖5.16帖子刪除成功界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

forumService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.5用戶(hù)管理在系統(tǒng)中以管理員身份登錄后,進(jìn)入用戶(hù)管理界面,用戶(hù)管理界面如圖5.17所示;點(diǎn)擊用戶(hù)賬號(hào)進(jìn)行搜索,即可跳轉(zhuǎn)到所搜索用戶(hù)的詳細(xì)信息,同時(shí)還可以對(duì)用戶(hù)進(jìn)行增刪改查以及查看詳情等操作。圖5.17用戶(hù)管理界面進(jìn)入用戶(hù)管理頁(yè)面,選中需要?jiǎng)h除的用戶(hù),然后點(diǎn)擊“刪除”按鈕,即可進(jìn)入用戶(hù)刪除界面。用戶(hù)刪除界面如圖5.18所示:圖5.18用戶(hù)刪除界面進(jìn)入用戶(hù)刪除界面,點(diǎn)擊確定,用戶(hù)刪除成功界面如圖5.19所示:圖5.19用戶(hù)刪除成功界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,YonghuEntityyonghu, HttpServletRequestrequest){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); PageUtilspage=yonghuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghu),params),params));returnR.ok().put("data",page);}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

yonghuService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.6圖書(shū)類(lèi)型管理以管理員身份登錄到系統(tǒng)中,進(jìn)入圖書(shū)類(lèi)型管理界面,點(diǎn)擊圖書(shū)類(lèi)型進(jìn)行搜索,即可跳轉(zhuǎn)到所搜索圖書(shū)類(lèi)型的詳細(xì)信息,同時(shí)還可以對(duì)圖書(shū)類(lèi)型進(jìn)行增刪改查和查看詳情操作。圖書(shū)類(lèi)型管理界面如圖5.20所示:圖5.20圖書(shū)類(lèi)型管理界面進(jìn)入圖書(shū)類(lèi)型管理界面,點(diǎn)擊“新增”按鈕,輸入新增的圖書(shū)類(lèi)型。新增圖書(shū)類(lèi)型界面如圖5.21所示:圖5.21新增圖書(shū)類(lèi)型界面進(jìn)入新增圖書(shū)類(lèi)型的界面,隨后點(diǎn)擊提交按鈕,即可添加成功。圖書(shū)類(lèi)型添加成功界面如圖5.22所示:圖5.22圖書(shū)類(lèi)型添加成功界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,TushuleixingEntitytushuleixing, HttpServletRequestrequest){EntityWrapper<TushuleixingEntity>ew=newEntityWrapper<TushuleixingEntity>(); PageUtilspage=tushuleixingService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,tushuleixing),params),params));returnR.ok().put("data",page);}@RequestMapping("/add")

publicRadd(@RequestBodyTushuleixingEntitytushuleixing,HttpServletRequestrequest){

tushuleixing.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

//ValidatorUtils.validateEntity(tushuleixing);

tushuleixingService.insert(tushuleixing);

returnR.ok();

}5.7熱門(mén)圖書(shū)管理以管理員身份登錄到系統(tǒng)中,進(jìn)入熱門(mén)圖書(shū)管理界面,點(diǎn)擊圖書(shū)名稱(chēng)進(jìn)行搜索,就可以跳轉(zhuǎn)到所搜索熱門(mén)圖書(shū)的詳細(xì)信息,也可以對(duì)熱門(mén)圖書(shū)信息進(jìn)行增刪改查,審核和查看詳情操作。熱門(mén)圖書(shū)管理界面如圖5.23所示:圖5.23熱門(mén)圖書(shū)管理界面圖書(shū)審核操作可通過(guò)管理員點(diǎn)擊審核按鈕來(lái)實(shí)現(xiàn)。圖書(shū)審核界面如圖5.24所示:圖5.24圖書(shū)審核界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/page")

publicRpage(@RequestParamMap<String,Object>params,RementushuEntityrementushu,

HttpServletRequestrequest){

StringtableName=request.getSession().getAttribute("tableName").toString();

if(tableName.equals("yonghu")){

rementushu.setYonghuzhanghao((String)request.getSession().getAttribute("username"));

}

EntityWrapper<RementushuEntity>ew=newEntityWrapper<RementushuEntity>();

PageUtilspage=rementushuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,rementushu),params),params));

returnR.ok("圖書(shū)審核").put("data",page);

}5.8圖書(shū)評(píng)分管理以管理員身份登錄系統(tǒng)后,進(jìn)入圖書(shū)評(píng)分管理頁(yè)面。管理員可以通過(guò)點(diǎn)擊圖書(shū)名稱(chēng)進(jìn)行搜索,跳轉(zhuǎn)到所搜索圖書(shū)評(píng)分的詳細(xì)信息,并且可以對(duì)圖書(shū)評(píng)分信息進(jìn)行增、刪、改、查和查看詳情操作。圖書(shū)評(píng)分管理界面如圖5.25所示:圖5.25圖書(shū)評(píng)分管理界面圖5.26圖書(shū)評(píng)分柱狀圖界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,TushupingfenEntitytushupingfen, HttpServletRequestrequest){EntityWrapper<TushupingfenEntity>ew=newEntityWrapper<TushupingfenEntity>();StringtableName=request.getSession().getAttribute("tableName").toString();ew.andNew();if(tableName.equals("yonghu")){ew.eq("yonghuzhanghao",(String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")){ew.or();ew.eq("pingjiazhanghao",(String)request.getSession().getAttribute("username"));} PageUtilspage=tushupingfenService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,tushupingfen),params),params));returnR.ok().put("data",page);}5.9權(quán)限申請(qǐng)管理以用戶(hù)身份登錄到系統(tǒng)中,點(diǎn)擊管理申請(qǐng),用戶(hù)可以申請(qǐng)成為管理員。用戶(hù)申請(qǐng)界面如圖5.27所示:圖5.27用戶(hù)申請(qǐng)界面進(jìn)入用戶(hù)的申請(qǐng)頁(yè)面,點(diǎn)擊“新增”按鈕,然后跳轉(zhuǎn)至“新增用戶(hù)申請(qǐng)界面”。新增用戶(hù)申請(qǐng)界面如圖5.28所示:圖5.28新增用戶(hù)申請(qǐng)界面用戶(hù)填寫(xiě)申請(qǐng)?jiān)蚝?,點(diǎn)擊提交即可添加申請(qǐng)。用戶(hù)申請(qǐng)?zhí)砑映晒缑嫒鐖D5.29所示:圖5.29用戶(hù)申請(qǐng)?zhí)砑映晒缑嬉怨芾韱T身份登錄到系統(tǒng)中,進(jìn)入權(quán)限申請(qǐng)管理界面,點(diǎn)擊申請(qǐng)賬號(hào)搜索,就可以跳轉(zhuǎn)到所搜索管理申請(qǐng)的詳細(xì)信息,也可以對(duì)權(quán)限申請(qǐng)信息進(jìn)行增刪改查、審核和查看詳情。權(quán)限申請(qǐng)管理界面如圖5.30所示:圖5.30權(quán)限申請(qǐng)管理界面管理員可以審核用戶(hù)提交的申請(qǐng)。權(quán)限申請(qǐng)審核界面如圖5.31所示:圖5.31權(quán)限申請(qǐng)審核界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,GuanlishenqingEntityguanlishenqing, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yonghu")){ guanlishenqing.setYonghuzhanghao((String)request.getSession().getAttribute("username")); }EntityWrapper<GuanlishenqingEntity>ew=newEntityWrapper<GuanlishenqingEntity>(); PageUtilspage=guanlishenqingService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,guanlishenqing),params),params));returnR.ok("審核").put("data",page);}5.10管理員信息管理作為管理員登陸后臺(tái)系統(tǒng),進(jìn)入管理員管理列表接口,輸入用戶(hù)名并選擇查詢(xún)以查找管理員信息,同時(shí)支持對(duì)管理員信息進(jìn)行修改、添加、刪除和查看詳細(xì)信息。管理員信息管理界面如圖5.32所示:圖5.32管理員信息管理界面在管理員信息管理頁(yè)面,點(diǎn)擊“新增”按鈕,即可跳轉(zhuǎn)至“新增管理員”頁(yè)面。新增管理員界面如圖5.33所示:圖5.33新增管理員界面管理員在輸入新增用戶(hù)名和密碼后,點(diǎn)擊提交按鈕即可完成管理員賬戶(hù)的添加。新增管理員成功界面如圖5.34所示:圖5.34新增管理員成功界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/add")

publicRadd(@RequestBodyGuanlishenqingEntityguanlishenqing,HttpServletRequestrequest){

guanlishenqing.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

//ValidatorUtils.validateEntity(guanlishenqing);

guanlishenqingService.insert(guanlishenqing);

returnR.ok();

}5.11系統(tǒng)管理用戶(hù)登錄系統(tǒng)后,可通過(guò)點(diǎn)擊通知公告,進(jìn)入對(duì)應(yīng)的頁(yè)面。通知公告界面如圖5.35所示:圖5.35通知公告界面以管理員身份登錄到后臺(tái)系統(tǒng)中,進(jìn)入系統(tǒng)管理列表界面,可以看到“通知公告和輪播圖管理”,輸入標(biāo)題,選擇查詢(xún)找到通知公告信息,同時(shí)支持對(duì)通知公告信息進(jìn)行修改、添加、刪除和查看詳細(xì)信息。通知公告管理界面如圖5.36所示:圖5.36通知公告管理界面圖5.37輪播圖界面實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,NewsEntitynews, HttpServletRequestrequest){EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>(); PageUtilspage=newsService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,news),params),params));returnR.ok().put("data",page);}第6章系統(tǒng)測(cè)試為了確保系統(tǒng)能夠可靠穩(wěn)定地運(yùn)行,進(jìn)行功能和性能測(cè)試是必不可少的一步。其中,功能測(cè)試是整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程中最為關(guān)鍵的環(huán)節(jié)之一,其對(duì)后續(xù)的性能測(cè)試有著重要影響。本文探究了系統(tǒng)各個(gè)模塊的功能和性能,并提出了一種基于黑盒測(cè)試方法的系統(tǒng)測(cè)試方案,詳細(xì)闡述了其實(shí)現(xiàn)步驟。黑盒測(cè)試是一種以用戶(hù)為中心的測(cè)試系統(tǒng)整體功能的方法,它能夠幫助測(cè)試人員識(shí)別可能存在的問(wèn)題,并提供符合預(yù)期的功能測(cè)試用例。它通過(guò)對(duì)整個(gè)測(cè)試過(guò)程進(jìn)行模擬來(lái)評(píng)估軟件的質(zhì)量。在黑盒測(cè)試中,位移分析和閾值分析是兩種主要的測(cè)試方法。通過(guò)對(duì)不同情況下出現(xiàn)故障的原因分析發(fā)現(xiàn),當(dāng)測(cè)試時(shí),系統(tǒng)的狀態(tài)與實(shí)際運(yùn)行狀態(tài)不一致時(shí),系統(tǒng)就會(huì)出現(xiàn)異常。鑒于輸入和輸出值的邊界常常是系統(tǒng)錯(cuò)誤的發(fā)生地,其發(fā)生概率遠(yuǎn)高于內(nèi)部錯(cuò)誤,因此,通過(guò)閾值分析,可以進(jìn)一步確定系統(tǒng)的可靠性和穩(wěn)定性。本文提出了一種基于模糊邏輯的黑盒測(cè)試方法,該算法利用模糊理論將傳統(tǒng)的白箱模型擴(kuò)展為模糊集。一旦明確了輸入和輸出的范圍,就可以選擇操作系統(tǒng)的閾值,以便進(jìn)行系統(tǒng)測(cè)試。6.1測(cè)試步驟正如在相同的開(kāi)發(fā)進(jìn)程中一樣,應(yīng)該在試驗(yàn)期間逐步執(zhí)行。在整個(gè)開(kāi)發(fā)和測(cè)試過(guò)程中,也有一些重要的步驟可以分階段來(lái)實(shí)現(xiàn),這些階段可稱(chēng)為開(kāi)發(fā)周期或開(kāi)發(fā)順序。就邏輯而言,每個(gè)環(huán)節(jié)都是前面環(huán)節(jié)的繼續(xù)。在開(kāi)發(fā)軟件時(shí)必須考慮到這一思想,并將其應(yīng)用于整個(gè)軟件開(kāi)發(fā)過(guò)程當(dāng)中。測(cè)試大規(guī)模軟件程序的過(guò)程實(shí)際上是由一系列相互關(guān)聯(lián)的環(huán)節(jié)構(gòu)成的:1.為了檢測(cè)程序中的編碼和詳細(xì)設(shè)計(jì)錯(cuò)誤,進(jìn)行模塊測(cè)試是必不可少的步驟。2.接下來(lái),將進(jìn)行一系列程序測(cè)試,以檢測(cè)設(shè)計(jì)中的缺陷。3.最終的驗(yàn)收測(cè)試方案必須符合規(guī)范,以便及時(shí)發(fā)現(xiàn)并修復(fù)程序中可能存在的問(wèn)題。6.2測(cè)試用例6.2.1登錄測(cè)試用例為了滿(mǎn)足用戶(hù)的需求,我們運(yùn)用了黑盒測(cè)試技術(shù)來(lái)構(gòu)建用戶(hù)端的測(cè)試用例,并提供了一些代表性的測(cè)試用例表,如表6.1所示。表6.1登錄測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001登錄測(cè)試輸入正確的用戶(hù)名和密碼登錄成功登錄成功續(xù)表6.1登錄測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果002登錄測(cè)試輸入錯(cuò)誤的用戶(hù)名登錄失敗登錄失敗003登錄測(cè)試輸入錯(cuò)誤的的密碼登錄失敗登錄失敗6.2.2用戶(hù)管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,選擇具有代表性的部分測(cè)試用例,如表6.2所示。表6.2用戶(hù)管理測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加用戶(hù)信息測(cè)試在添加頁(yè)面輸入用戶(hù)信息,點(diǎn)擊確認(rèn)按鈕添加成功添加成功002修改用戶(hù)信息測(cè)試在修改頁(yè)面修改用戶(hù)信息,點(diǎn)擊確認(rèn)按鈕修改成功修改成功003刪除用戶(hù)信息測(cè)試在管理用戶(hù)信息頁(yè)面,點(diǎn)擊某一用戶(hù)的刪除按鈕刪除成功刪除成功004查詢(xún)用戶(hù)信息測(cè)試在管理用戶(hù)信息頁(yè)面查詢(xún)輸入框輸入要查詢(xún)的賬號(hào)和名字,點(diǎn)擊查詢(xún)按鈕查詢(xún)成功查詢(xún)成功6.2.3圖書(shū)評(píng)分管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,選擇具有代表性的部分測(cè)試用例,如表6.3所示。表6.3圖書(shū)評(píng)分管理測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加圖書(shū)評(píng)分信息測(cè)試在添加頁(yè)面輸入圖書(shū)評(píng)分信息,點(diǎn)擊確認(rèn)按鈕添加成功添加成功002修改圖書(shū)評(píng)分信息測(cè)試在修改頁(yè)面修改圖書(shū)評(píng)分信息,點(diǎn)擊確認(rèn)按鈕修改成功修改成功003刪除圖書(shū)評(píng)分信息測(cè)試在管理圖書(shū)評(píng)分信息頁(yè)面,點(diǎn)擊某一圖書(shū)的刪除按鈕刪除成功刪除成功004查詢(xún)圖書(shū)評(píng)分信息測(cè)試在管理圖書(shū)評(píng)分信息頁(yè)面查詢(xún)輸入框輸入要查詢(xún)的圖書(shū)名稱(chēng),點(diǎn)擊查詢(xún)按鈕查詢(xún)成功查詢(xún)成功管理員可以對(duì)圖書(shū)評(píng)分信息進(jìn)行刪除操作,如圖6.1-6.3所示:圖6.1圖書(shū)評(píng)分界面圖6.2圖書(shū)評(píng)分刪除界面圖6.3圖書(shū)評(píng)分刪除成功界面6.2.4圖書(shū)類(lèi)型管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,選擇具有代表性的部分測(cè)試用例,如表6.4所示。表6.4圖書(shū)類(lèi)型管理測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加圖書(shū)類(lèi)型測(cè)試在添加頁(yè)面輸入圖書(shū)類(lèi)型,點(diǎn)擊確認(rèn)按鈕添加成功添加成功002修改圖書(shū)類(lèi)型測(cè)試在修改頁(yè)面修改圖書(shū)類(lèi)型,點(diǎn)擊確認(rèn)按鈕修改成功修改成功003刪除圖書(shū)類(lèi)型測(cè)試在管理圖書(shū)類(lèi)型頁(yè)面,點(diǎn)擊某一圖書(shū)類(lèi)型的刪除按鈕刪除成功刪除成功004查詢(xún)圖書(shū)類(lèi)型測(cè)試在管理圖書(shū)類(lèi)型頁(yè)面查詢(xún)輸入框輸入要查詢(xún)的圖書(shū)類(lèi)型名稱(chēng),點(diǎn)擊查詢(xún)按鈕查詢(xún)成功查詢(xún)成功管理員可以對(duì)圖書(shū)類(lèi)型進(jìn)行修改操作,如圖6.4-6.7所示:圖6.4圖書(shū)類(lèi)型界面圖6.5圖書(shū)類(lèi)型詳情界面圖6.6圖書(shū)類(lèi)型修改界面圖6.7圖書(shū)類(lèi)型修改成功界面6.2.5通知公告管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,選擇具有代表性的部分測(cè)試用例,如表6.5所示。表6.5通知公告管理測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加通知公告測(cè)試在添加頁(yè)面輸入通知公告,點(diǎn)擊確認(rèn)按鈕添加成功添加成功002修改通知公告測(cè)試在修改頁(yè)面修改通知公告,點(diǎn)擊確認(rèn)按鈕修改成功修改成功003刪除通知公告測(cè)試在管理通知公告頁(yè)面,點(diǎn)擊某一標(biāo)題的刪除按鈕刪除成功刪除成功004查詢(xún)通知公告測(cè)試在管理通知公告頁(yè)面查詢(xún)輸入框輸入要查詢(xún)的標(biāo)題,點(diǎn)擊查詢(xún)按鈕查詢(xún)成功查詢(xún)成功管理員可以對(duì)通知公告進(jìn)行刪除操作,如圖6.8-6.10所示:圖6.8通知公告管理界面圖6.9通知公告刪除界面圖6.10通知公告刪除成功界面6.3測(cè)試結(jié)論通過(guò)幾個(gè)測(cè)試用例對(duì)系統(tǒng)功能進(jìn)行了一些測(cè)試,在測(cè)試過(guò)程中,本系統(tǒng)成功地將正確的數(shù)據(jù)顯示給用戶(hù),無(wú)論從系統(tǒng)功能上還是從使用上,都有效地達(dá)到了預(yù)期的效果。結(jié)論及展望在本次研究中,通過(guò)了解基于Java的圖書(shū)推薦系統(tǒng)的實(shí)際意義和研究現(xiàn)狀,闡述了本次開(kāi)發(fā)所采用的相關(guān)技術(shù)和基本原理知識(shí),重點(diǎn)介紹了開(kāi)發(fā)語(yǔ)言及有關(guān)技術(shù)的使用,最后對(duì)本系統(tǒng)的可行性及需求進(jìn)行了綜合深入分析,認(rèn)為本系統(tǒng)是可行的。在設(shè)計(jì)過(guò)程當(dāng)中,考慮到當(dāng)前社會(huì)發(fā)展?fàn)顩r以及人

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論