版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
緒論1.1研究背景在互聯(lián)網(wǎng)發(fā)展的浪潮下,國內(nèi)各行各業(yè)在“十四五”規(guī)劃的指導(dǎo)下紛紛進行數(shù)字化轉(zhuǎn)型。數(shù)字化轉(zhuǎn)型是因為科技信息技術(shù)在現(xiàn)階段的急速發(fā)展而引起的科學(xué)的系統(tǒng)性變革,憑借數(shù)據(jù)驅(qū)動要素重新構(gòu)建產(chǎn)業(yè)價值體系。“十四五”數(shù)字經(jīng)濟發(fā)展規(guī)劃中提出要使數(shù)字化公共服務(wù)更加普惠均等,數(shù)字化,智慧化的利企惠民服務(wù)體系不斷完善,數(shù)字鴻溝加速彌合。圖書館數(shù)字化正是依托目前的技術(shù)基礎(chǔ),將數(shù)字化概念滲入圖書館轉(zhuǎn)型工作中,從而產(chǎn)生兩種相關(guān)概念——圖書館數(shù)字資源和數(shù)字化圖書館。圖書館數(shù)字資源是將文獻資源數(shù)字化,電子化;數(shù)字化圖書館指搭建信息管理系統(tǒng),用信息技術(shù)手段對圖書館的工作進行管理,如書本入庫,書本去向等,彌補傳統(tǒng)圖書館在書本保存,書籍去向溯源等問題的不足,因此圖書管理系統(tǒng)的搭建顯得尤為重要。1.2研究現(xiàn)狀及意義數(shù)字化圖書館的重要工具之一是圖書館管理系統(tǒng),它能夠協(xié)助圖書管理員高效地管理圖書館的工作事務(wù),例如實現(xiàn)讀者、圖書信息管理和查詢;借閱信息的管理和查詢,對每本書做好溯源,對書籍的去向了如指掌,減少書籍丟失等情況;利用大數(shù)據(jù)技術(shù)對用戶借書的偏好進行分析,為讀者推出個性化推薦服務(wù)。經(jīng)過對目前現(xiàn)有的圖書管理系統(tǒng)進行分析,盡管不同圖書館面向用戶人群不同,個性化功能也不盡相同,但是仍暴露出一些相似的弊端。(1)圖書館信息管理系統(tǒng)功能較為單一現(xiàn)有的圖書管理信息系統(tǒng)能夠?qū)崿F(xiàn)圖書管理、讀者管理,借閱管理等,但都是針對于圖書管理員的操作,如果能完善面向讀者的前臺界面,使查詢借閱書籍更加便捷,這能提高圖書館書籍的借閱率,助力構(gòu)建文明社會。(2)圖書館信息管理系統(tǒng)信息化不足隨著互聯(lián)網(wǎng)的普及,人們越來越依賴互聯(lián)網(wǎng)提供的便利服務(wù),現(xiàn)有圖書館信息管理系統(tǒng)只能實現(xiàn)單純的圖書管理,卻不能提供讀者在線借閱和歸還功能,因此后續(xù)開發(fā)的圖書信息管理系統(tǒng)應(yīng)實現(xiàn)該功能。1.3相關(guān)技術(shù)介紹本系統(tǒng)借助SpringBoot快速搭建了一個基于SSM框架,使用HTML+CSS+Javascript前端開發(fā)語言和JQuery、Bootstrap前端開發(fā)框架和MySQL數(shù)據(jù)庫技術(shù)開發(fā)一個圖書信息管理系統(tǒng)。1.3.1前端BootstrapBootstrap是目前web開發(fā)主流前端開發(fā)框架,由標(biāo)準的層疊樣式(CascadingStyleSheets,CSS)、JavaScript插件組成,是一個便捷、靈活、高效的開發(fā)工具,為開發(fā)人員提供強有力的幫助。Bootstrap特有的響應(yīng)式布局能自適應(yīng)PC端、手機端等移動設(shè)備,使其顯示效果能夠根據(jù)終端設(shè)備的不同自動調(diào)整。Bootstrap擁有跨瀏覽器的特點,幾乎兼容市面上絕大部分的主流瀏覽器,且對初學(xué)者友好,借助Bootstrap可以快速搭建一個網(wǎng)站的基本布局,操作代碼簡潔易懂,降低開發(fā)難度,并對開發(fā)人員的代碼編寫進行規(guī)范。1.3.2前端JSP開發(fā)技術(shù)開發(fā)Web服務(wù)器網(wǎng)頁主要應(yīng)用JSP(JavaServerPages)技術(shù),即動態(tài)網(wǎng)頁技術(shù)。根據(jù)用戶的不同響應(yīng),Web服務(wù)器會分別返回靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁給用戶,靜態(tài)網(wǎng)頁使用純HTML編寫,不與用戶操作和后臺數(shù)據(jù)庫進行交互;動態(tài)網(wǎng)頁使用JAVA語言,開發(fā)人員直接于HTML頁面中插入JAVA代碼,若JSP文件第一次被請求,JSP引擎將JAVA代碼轉(zhuǎn)換為Servlet代碼并生成字節(jié)碼文件,服務(wù)隨之生成對應(yīng)的HTML頁面并返回客戶端。利用JSP技術(shù)開發(fā)的Web平臺具有跨平臺特性,適用于Windows、Linux等多種操作系統(tǒng)。1.3.3后臺開發(fā)JAVA語言技術(shù)JAVA是由SunMicrosystems開發(fā)的一種面向?qū)ο蟮某绦蛟O(shè)計語言。擁有平臺的特性,具有“寫一次,跑到處”的優(yōu)點,即程序員編寫的JAVA程序利用虛擬機JVM在不同操作系統(tǒng)上運行。目前JAVA被廣泛應(yīng)用于企業(yè)級應(yīng)用程序開發(fā)。JAVA編寫程序的語法和規(guī)范簡單易學(xué):JAVA編程風(fēng)格與語法與C++相似,它去掉了復(fù)雜的特性,更加簡單、人性化;與常用編程語言C語言相比,JAVA本身獨有的JAVA虛擬機JVM、垃圾回收管理機制以及高效的內(nèi)存管理能使開發(fā)人員更注重軟件開發(fā)本身的業(yè)務(wù)。1.3.4后臺SSM開發(fā)技術(shù)SSM框架是一種典型的MVC框架,常被用作JAVAEE企業(yè)級開發(fā)框架。一般被劃分為表示層、控制層、服務(wù)層和數(shù)據(jù)訪問層。SSM框架有控制反轉(zhuǎn)(InversionofControl,IOC)機制,即不再需要開發(fā)人員顯式地新建一個對象,而是由Spring框架實現(xiàn),減輕開發(fā)人員的工作量。SSM還提供面向切面技術(shù)(AOP),借助這些特有機制降低代碼之間的耦合性,讓相似功能整合到同一層,實現(xiàn)高內(nèi)聚,這也使得單元測試和集成測試變得更加容易。其中,當(dāng)用戶發(fā)出請求時,SpringMVC進行相應(yīng)地響應(yīng),Spring主要負責(zé)業(yè)務(wù)對象的管理,MyBatis是開發(fā)人員與數(shù)據(jù)庫間SQL高級運用接口,對數(shù)據(jù)的輸入和輸出進行管理。但是SSM框架也有明顯的缺點,由于SSM整合了三種框架,學(xué)習(xí)曲線比較陡峭,對初學(xué)者來說并不容易,框架的配置較為復(fù)雜,為解決這一問題,本文引用SpringBoot技術(shù)快速搭建SSM框架,其具有簡化maven配置,自動配置Spring等優(yōu)點,提高開發(fā)效率。1.3.5MySQLMySQL是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),它是由瑞典公司MySQLAB開發(fā)的,并且現(xiàn)在由Oracle維護和發(fā)展。MySQL基于客戶端-服務(wù)器模型,廣泛應(yīng)用于存儲和管理結(jié)構(gòu)化數(shù)據(jù),使用了結(jié)構(gòu)化查詢語言(SQL)來管理和操作數(shù)據(jù)。MySQL受廣大開發(fā)者歡迎的原因之一在于免費開源,降低了開發(fā)成本。2系統(tǒng)分析2.1系統(tǒng)可行性分析在系統(tǒng)開發(fā)之前,必不可少的環(huán)節(jié)就是對系統(tǒng)進行可行性分析,也就是需要判定該系統(tǒng)的模型和功能是否切合實際,只有確保新系統(tǒng)的開發(fā)在技術(shù)上、經(jīng)濟上可行,才能進行后續(xù)開發(fā)工作,否則可能會導(dǎo)致人力物力資源的浪費。在可行性分析過程中簡化系統(tǒng)設(shè)計詳細細節(jié),將系統(tǒng)的分析和設(shè)計過程抽象化,使得開發(fā)人員能以最低時間成本判斷是否值得開發(fā),本文將圍繞經(jīng)濟可行性和技術(shù)可行性進行分析。2.1.1經(jīng)濟可行性經(jīng)濟可行性主要是從經(jīng)濟成本來驗證系統(tǒng)是否具有可行性,需要估計初期系統(tǒng)開發(fā)的成本,后期系統(tǒng)維護的成本以及從長遠角度看系統(tǒng)所帶來效益。若該系統(tǒng)所帶來的實際效益遠超過前期開發(fā)系統(tǒng)的成本和維護成,則可證明該系統(tǒng)具備可行性。本系統(tǒng)可用于中小型圖書館,只面向該圖書館的讀者和圖書管理員,開發(fā)成本相對較小,用戶僅需一個可以上網(wǎng)的移動設(shè)備即可使用本系統(tǒng)。從系統(tǒng)的設(shè)計目的來看,本系統(tǒng)可幫助讀者快速查找書籍,簡化借閱和歸還的步驟,增強讀者對圖書館的粘性;本系統(tǒng)可減少圖書管理的工作負擔(dān),提高工作效率,為圖書館節(jié)省人員薪酬。2.1.2技術(shù)可行性技術(shù)可行性主要是對開發(fā)系統(tǒng)的硬件,開發(fā)過程中使用的軟件以及開發(fā)人員能力綜合評估。本系統(tǒng)是較為基礎(chǔ)的圖書信息管理系統(tǒng),基于瀏覽器\客戶端(B\S)架構(gòu),前后端分離模式,使用SSM架構(gòu)開發(fā),該架構(gòu)易于上手;依托MySQL數(shù)據(jù)庫,MySQL是開源且功能完備的關(guān)系型數(shù)據(jù)庫,能安全儲存大量數(shù)據(jù),具備安全性、高可靠性等優(yōu)點,能夠保護用戶的數(shù)據(jù)安全;使用IntelliJIDEA作為系統(tǒng)開發(fā)工具,使用ApacheTomcat8.0作為服務(wù)器,能保證穩(wěn)定的開發(fā)環(huán)境;前端使用集成的Bootstrap,能夠協(xié)助開發(fā)人員快速構(gòu)建網(wǎng)站雛形。綜上,本系統(tǒng)在技術(shù)層面上看是可行的。2.2系統(tǒng)需求分析本圖書信息管理系統(tǒng)必需功能包括讀者管理、圖書管理、借閱管理,非必需功能有庫存管理、類別管理,統(tǒng)計分析等,這里主要進行必須功能模塊的需求分析。2.2.1讀者管理需求分析圖書管理系統(tǒng)面向的用戶是讀者,管理員可以對讀者信息進行搜索、錄入、修改信息和注銷讀者信息。圖書管理員對新讀者辦理注冊手續(xù),錄入讀者的基本信息:讀者姓名、電話、郵箱、喜歡的書籍類型等。圖書管理員為讀者注冊信息后,讀者便可以在圖書信息管理系統(tǒng)上借閱圖書和歸還圖書。若讀者信息有誤或者需要變更,可以由管理員進行更改,也能對讀者的賬戶進行注銷。2.2.2圖書管理需求分析圖書管理是對圖書館內(nèi)的書籍進行管理,通過圖書查詢能夠查看目前圖書館中書籍的圖書編號、圖書名稱、圖書類型、作者、庫存、語言等信息,也能對新到圖書館的書籍進行入庫操作,也能修改書籍的詳細信息,或?qū)θ笔Щ虿辉偈珍浀臅录堋?.2.3圖書借閱管理需求分析圖書的借閱和歸還是圖書館的主要工作之一,也是圖書信息管理系統(tǒng)的重要模塊,能夠?qū)D書的去向進行管理及追蹤,可以查詢想要借閱的書籍是否還有庫存,有庫存的書籍才能進行后續(xù)的借閱操作,在借閱一段時間后讀者可以選擇歸還圖書或者由管理員發(fā)出郵件提醒還書。每個讀者可以查看目前已經(jīng)借閱了哪些書籍,每一條借閱記錄會顯示在管理員端,便于管理員明確一本書于某時被某人所借走。歸還圖書后,讀者的借閱書籍中會清除這本書的信息,同時管理員端這本書的狀態(tài)由“在借中”變?yōu)椤耙褮w還”。3概要設(shè)計3.1系統(tǒng)設(shè)計思路剖析市面上現(xiàn)有圖書館管理系統(tǒng)的優(yōu)勢與不足之處,本系統(tǒng)設(shè)計并實現(xiàn)了基于SSM框架的圖書信息管理系統(tǒng),目的為讀者借還、查找圖書提供便利,提高圖書管理員對書籍的管理工作的效率。結(jié)合傳統(tǒng)圖書館管理的實際需求,圖書信息管理系統(tǒng)的用戶針對于讀者和圖書管理員,將系統(tǒng)劃分為前臺和后臺兩部分。如圖3-1所示,前臺部分,讀者可以根據(jù)圖書名稱進行搜索,同時根據(jù)用戶注冊時填寫的閱讀偏好,可以在推薦圖書版塊找到想要借閱的書,降低讀者尋找書籍的時間成本;圖書管理員登錄圖書信息的后臺管理系統(tǒng),可以幫助圖書管理員科學(xué)、有條理地完成圖書、借還記錄管理、類別、庫存的管理和讀者信息維護工作,同時提供統(tǒng)計分析功能(對借閱書籍情況進行可視化),使圖書管理員擺脫傳統(tǒng)繁瑣、復(fù)雜的管理工作。圖STYLEREF1\s0SEQ圖\*ARABIC\s11圖書信息管理系統(tǒng)功能模塊圖3.1.1讀者管理(1)讀者信息管理圖書管理員登錄系統(tǒng),進入后臺管理界面,可以對讀者信息進行維護。進入用戶管理系統(tǒng)查看所有已經(jīng)注冊的用戶的信息,提供模糊查詢功能,可以對某一用戶完成修改讀者信息、注銷讀者信息等指定操作。同時,圖書管理員可以直接為用戶注冊讀者信息,后續(xù)讀者只需要使用圖書管理員提供的賬號和密碼即可進入圖書信息管理系統(tǒng)。(2)讀者注冊登錄游客用戶(沒有賬號的新用戶)想要進入系統(tǒng)必須進行注冊,注冊過程并不繁瑣,只需要填寫用戶名和密碼,即可完成注冊,注冊后輸入設(shè)定的用戶名和密碼就能進入圖書信息管理系統(tǒng),可以正常借閱圖書。3.1.2圖書管理(1)搜索圖書按正常圖書館的規(guī)模來看,讀者想從茫茫書海中尋找一本心儀的書,可以用大海撈針來形容。但是用戶可以登錄進入系統(tǒng)前臺界面,進入借閱菜單,可以查看當(dāng)前圖書館所有藏書的目錄,可以翻閱菜單查看書籍信息和借閱,也可以點擊搜索框中輸入書名進行檢索,搜索功能使用模糊查詢,返回所有含該字段的書籍名稱信息給用戶,用戶按需借閱。圖書管理員也可以依托此功能查看某本書籍的狀態(tài),便于對書籍后續(xù)的管理工作。(2)管理圖書類別圖書管理員登錄系統(tǒng)后,進入類別管理菜單,可以查看目前圖書館現(xiàn)有的書籍的所有類型以及類型簡介。圖書館的藏書類型應(yīng)該豐富多樣,若藏書類型單一、重復(fù),可能會流失大量讀者。圖書類別管理可以方便圖書管理員對后續(xù)上架的書籍進行決策。(3)圖書基本操作管理圖書管理員登錄系統(tǒng)后,進入圖書管理菜單,顯示圖書館現(xiàn)存書籍目錄及圖書編號、圖書名稱、圖書類型、作者、庫存、語言等信息??梢詫π虏少彽臅M行上架,或是修改圖書相關(guān)信息,或是下架某本書籍。圖書管理員的后臺操作,在前臺會同步更新,減少信息誤差,使讀者能及時準確地獲得相關(guān)圖書信息。(4)圖書庫存管理庫存管理需要耗費圖書管理員大量精力,當(dāng)書籍破損不得再借閱給讀者,或因借閱人數(shù)太多而適當(dāng)增加書籍?dāng)?shù)量時,圖書管理員都需要再一次清點書籍?dāng)?shù)量。有了庫存管理功能,圖書管理員登錄系統(tǒng)后,只需進入庫存管理菜單,就能顯示所有藏書的圖書名稱、圖書類型、作者、庫存、語言,完成圖書的庫存增加或減少的工作。(5)推薦圖書根據(jù)用戶填寫的閱讀類型偏好,為讀者推薦對應(yīng)的書籍,迎合讀者喜好,能增加讀者在圖書館的借閱次數(shù),這也是圖書館維系讀者的一種手段。3.1.3借還管理(1)借閱管理讀者登錄系統(tǒng)在借閱書籍和推薦書籍菜單可以借閱想要的書籍,圖書管理員登錄系統(tǒng)可以在借閱管理菜單查看書籍的借閱信息:借閱人、借閱圖書、借閱時間、還書時間和還書狀態(tài),用戶可以根據(jù)讀者姓名查詢借閱信息,讀者可以讓圖書管理員完成借書功能,圖書管理員還能對借閱記錄刪除。(2)歸還管理讀者登陸系統(tǒng)后在“我的圖書”菜單查看已借閱的書籍,并進行歸還操作。圖書管理員登錄系統(tǒng)在借閱管理菜單進行還書操作或以發(fā)郵件的形式提醒借閱人還書。3.2數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是系統(tǒng)開發(fā)的基礎(chǔ),其能極大降低數(shù)據(jù)冗余度,達到數(shù)據(jù)共享的目標(biāo),本文選用MySQL作為數(shù)據(jù)庫管理系統(tǒng),有開發(fā)高效,免費開源等優(yōu)點。其中,數(shù)據(jù)表的設(shè)計是數(shù)據(jù)庫設(shè)計的關(guān)鍵。(1)表3-1是用戶信息表,其中存儲了用戶的基礎(chǔ)信息,每個用戶的用戶畫像被記錄在其中,包括:用戶id,郵箱,密碼,用戶名,電話號碼,頭像字段。表3-1用戶信息表字段名中文名稱是否為主鍵類型位數(shù)空/非空約束條件id用戶id是int11非空自動編號email郵箱否varchar255非空無password密碼否varchar255非空無userName用戶名否varchar255非空無phone電話號碼否varchar255非空無image頭像否vachar255空無(2)表3-2是圖書信息表,其中存儲了圖書的詳細信息,包括圖書編號,書名,類型,作者,庫存,語言,圖書封面字段。表3-2圖書信息表列名稱中文名稱是否為主鍵類型位數(shù)空/非空約束條件id圖書編號是int11非空自動編號bname書名否varchar255type類型否varchar255非空無author作者否Varchar100空無stock庫存否int11空無language語言否varchar255空無bimage圖書封面否Varchar255空無(3)表3-3是讀者表,其中存儲已注冊為該圖書館的讀者的詳細信息,包括讀者id,讀者姓名,密碼,電話號碼,郵箱,喜歡書的類型,頭像字段。表3-3讀者表字段名中文名稱是否為主鍵類型位數(shù)空/非空約束條件id讀者id是int11非空自動編號rname讀者姓名否vachar255非空無password密碼否varchar255非空無phone電話號碼否varchar255非空無email郵箱否varchar255非空無type喜歡書的類型否vachar255空無rimage頭像否vachar255空無(4)圖3-4是借閱表,其中存儲用戶的借閱記錄和歸還記錄的信息,當(dāng)讀者進行借還操作時產(chǎn)生的記錄保存于此,其中包括圖書編號,書名,類型,狀態(tài),借書時間,還書時間。表3-4借閱表列名稱中文名稱是否為主鍵類型位數(shù)空/非空約束條件id圖書編號是int11非空自動編號rid書名否varchar255非空無bid類型否varchar255非空無status狀態(tài)否Varchar100非空無borrow_time借書時間否datetime空無return_time還書時間否datetime空無(5)圖3-5是類型表,存放圖書的類型信息,便于管理員對圖書分門別類,并作為后續(xù)采購書籍的依據(jù)之一,其中包括id,類型名稱,類型特征字段。表3-5類型表字段名中文名稱是否為主鍵類型位數(shù)空/非空約束條件idid是int11非空自動編號Type類型名稱否varchar255空無feature類型特征否varchar255空無4系統(tǒng)功能模塊的詳細設(shè)計與實現(xiàn)4.1讀者管理圖書館管理員進入讀者管理菜單,可以瀏覽用戶的基本信息:讀者ID、讀者姓名、電話、郵箱、喜歡的書籍類型,可操作的按鈕有修改,刪除,添加讀者,批量刪除。添加讀者按鈕可以新增一條讀者信息,后續(xù)該讀者的借閱書籍,歸還書籍操作均由圖書管理員完成;修改按鈕可以更新讀者的詳細信息;單擊刪除按鈕或勾選讀者信息“#”欄的方框注銷對應(yīng)用戶的信息。圖STYLEREF1\s0SEQ圖\*ARABIC\s11讀者列表部分展示該模塊使用listReader()方法顯示用戶列表,preSaveReader()和save()方法聯(lián)合完成新增讀者操作,使用transFile()方法來可以上傳頭像文件,delReader()方法用于讀者信息,batchDeleteReader()實現(xiàn)批量刪除用戶信息,preUpdateReader()方法用于更新用戶信息。其中批量刪除功能調(diào)用readerService.removeByIds(list)方法,該方法用于批量刪除數(shù)據(jù)庫中符合條件的讀者信息。如果刪除成功,則返回“OK”字符串,否則返回“error”字符串。通過調(diào)用該方法,可以實現(xiàn)根據(jù)傳入的讀者編號列表批量刪除對應(yīng)的讀者信息,實現(xiàn)了圖書管理系統(tǒng)中刪除讀者信息的功能。部分關(guān)鍵代碼:@RequestMapping("listReader")publicStringlistReader(@RequestParam(required=false,defaultValue="1",value="pageNum")IntegerpageNum,@RequestParam(required=false,defaultValue="10",value="pageSize")IntegerpageSize,Modelmodel,Readerreader){if(pageNum<0||pageNum.equals("")||pageNum==null){pageNum=1;}if(pageSize<0||pageSize.equals("")||pageSize==null){pageSize=10;}PageHelper.startPage(pageNum,pageSize);QueryWrapper<Reader>qw=newQueryWrapper<>();if(reader.getRname()!=null){qw.like("rname",reader.getRname());}List<Reader>list=readerService.list(qw);PageInfo<Reader>pageInfo=newPageInfo<>(list);model.addAttribute("pageInfo",pageInfo);return"readerList";}4.2圖書管理圖書管理員登錄系統(tǒng)后臺,進入圖書管理菜單,可以瀏覽圖書館內(nèi)所有藏書的信息。在圖書館日常運營過程中,會盡可能地儲存有價值的書籍,對于新入庫的書籍的上架工作,僅需在圖書管理菜單單擊添加圖書按鈕,輸入圖書名稱,圖書類型,作者,庫存等相關(guān)信息即可完成書籍的上新。對于圖書館不再收錄的書籍,在系統(tǒng)中刪除該條書籍信息即可。如果書籍信息變化或者有誤,修改按鈕可以完成相關(guān)的修改。以上工作在面對大量書籍記錄,查找起來比較困難,在搜索框中輸入書籍名稱即可進行書籍檢索。圖STYLEREF1\s0-2圖書列表目錄該模塊使用listBook()方法用于展示圖書列表,preSaveBook()用于在前端渲染圖書保存頁面,saveBook()方法處理“saveBook”請求,使用transFile()方法來實現(xiàn)文件上傳,delbook()方法用于刪除圖書信息,batchDeleteBook()實現(xiàn)批量刪除圖書信息,updateBook()方法用于更新圖書信息。以實現(xiàn)新增圖書功能為例,用戶通過“preSaveBook”請求訪問圖書保存頁面,在頁面填寫圖書信息和上傳圖書封面后提交表單,請求發(fā)送到“saveBook”方法,保存圖書信息和上傳的文件調(diào)用bookService.save(book)方法保存圖書信息,并通過重定向方式將頁面跳轉(zhuǎn)到“/book/listBook”,即重定向到圖書列表頁面進行展示。部分關(guān)鍵代碼:@RequestMapping("preSaveBook")publicStringpreSaveBook(){return"bookSave";}@RequestMapping("saveBook")publicStringsaveBook(Bookbook,MultipartFilefile){transFile(book,file);booleansave=bookService.save(book);return"redirect:/book/listBook";}privatevoidtransFile(Bookbook,MultipartFilefile){………….if(!file1.exists()){file1.mkdirs();}Filefile2=newFile(file1,path);try{file.transferTo(file2);}catch(IOExceptione){e.printStackTrace();}book.setBimage(path);}4.3借閱管理圖書管理員進入借閱管理菜單,可以查看所有讀者的借閱和歸還記錄,可以明確書籍的狀態(tài)是處于“已借未還”,“已還”,“逾期未還”三種狀態(tài)的哪一種。單擊“借書”按鈕,完成借閱人和借閱書籍的選擇。勾選某一條還書狀態(tài)為“在借中”的書籍,單擊還書按鈕,還書狀態(tài)隨即更新。對于逾期未還的讀者可以單擊“提醒還書”,會自動發(fā)送e-mail到用戶郵箱,提醒用戶歸還圖書。圖STYLEREF1\s03借閱記錄菜單該模塊使用listReaderBook()方法顯示借閱記錄,"preBorrow()和saveReaderBook()實現(xiàn)新增一條借閱記錄,使用batchReturnReaderBook()方法來實現(xiàn)新增圖書歸還的記錄,delReaderBook()方法用于刪除圖書信息,batchDeleteReaderBook()實現(xiàn)批量刪除借閱記錄,sendEmail()方法實現(xiàn)發(fā)送E-mail提醒讀者還書功能。其中新增借閱記錄是調(diào)用readerBookService.save(readerBook)方法保存讀者借閱圖書的信息,然后根據(jù)bookId查詢對應(yīng)的圖書信息,并將該圖書的庫存stock減1。發(fā)送歸還圖書提醒郵件使用MailUtils.sendMail方法發(fā)送郵件給指定郵箱,提醒讀者歸還圖書,并在郵件內(nèi)容中包含了借閱圖書的名稱以及歸還圖書的鏈接。部分關(guān)鍵代碼:@RequestMapping("saveReaderBook")publicStringsaveReaderBook(IntegerreaderId,IntegerbookId)throwsException{ReaderBookreaderBook=newReaderBook();readerBook.setRid(readerId);readerBook.setBid(bookId);readerBookService.save(readerBook);Bookbook=bookService.getById(bookId);intstock=book.getStock();book.setStock(stock-1);bookService.updateById(book);return"redirect:/readerBook/listReaderBook";}@RequestMapping("sendEmail/{email}/{bname}")publicStringsendEmail(@PathVariableStringemail,@PathVariableStringbname){MailUtils.sendMail(email,"請在規(guī)定時間內(nèi)歸還圖書《"+bname+"》"+"<ahref='http://localhost:8088'>去還書</a>","圖書館郵件");return"redirect:/readerBook/listReaderBook";}4.4類別管理圖書管理員進入圖書信息系統(tǒng),進入類別管理菜單,瀏覽現(xiàn)有圖書類別,在搜索框中按類型名稱模糊查詢書籍類型,可以實現(xiàn)添加、刪除、批量刪除、查看該類別下所有圖書功能。圖STYLEREF1\s04類型展示該模塊使用listType()方法用于顯示庫存清單,saveType()方法新增圖書類別,使用,delType方法和batchDeleteType實現(xiàn)刪除圖書類別操作,updateType()方法用于修改圖書類別。部分關(guān)鍵代碼:@RequestMapping("listType")
publicStringlistType(@RequestParam(value="pageNum",required=false,defaultValue="1")IntegerpageNum,
@RequestParam(value="pageSize",required=false,defaultValue="10")IntegerpageSize,Modelmodel,Typetype){
if(pageNum<0||pageNum.equals("")||pageNum==null){
pageNum=1;
}
……………..
}
@RequestMapping("saveType")
publicStringsaveType(Typetype){
……………..
}
@RequestMapping("preUpdateType/{id}")
publicStringpreUpdateType(@PathVariableIntegerid,Modelmodel){
……………..
}
@RequestMapping("updateType")
publicStringupdateType(Typetype){
……………..
}
@RequestMapping("delType/{id}")
publicStringdelType(@PathVariableIntegerid){
……………..
}
@RequestMapping("batchDeleteType")
@ResponseBody
publicStringbatchDeleteType(StringidList){
……………..}
@RequestMapping("bookList/{type}")
……………..}
}4.5庫存管理圖書管理員登錄圖書信息管理系統(tǒng),進入庫存管理菜單,能夠根據(jù)圖書名稱模糊查詢庫存信息、增刪庫存量。圖STYLEREF1\s05庫存展示該模塊主要使用updateStock()功能實現(xiàn)庫存的增加或減少操作。首先創(chuàng)建一個Book對象,并設(shè)置相應(yīng)的圖書ID和庫存數(shù)量。調(diào)用bookService.updateById(book)方法更新數(shù)據(jù)庫中該圖書的庫存信息。根據(jù)updateById方法的返回結(jié)果,如果更新成功則返回字符串“OK”,否則返回字符串“error”。部分關(guān)鍵代碼:@RequestMapping("updateStock")
@ResponseBody
publicStringupdateStock(IntegerbookId,Integerstock){
Bookbook=newBook();
book.setId(bookId);
book.setStock(stock);
booleanb=bookService.updateById(book);
if(b){
return"OK";
}else{
return"error";
}
}4.6圖書信息可視化圖書管理員進入統(tǒng)計管理,每種類型書籍借閱的數(shù)量分別用3D餅狀圖和柱狀圖,根據(jù)借閱圖書類型數(shù)量的可視化可以清晰直觀地觀察借閱圖書類型的占比,圖書管理員可以多收錄一些受讀者歡迎的書籍類型。圖STYLEREF1\s06圖表實現(xiàn)可視化使用count()方法,返回"chart"頁面,查詢將按書籍類型對結(jié)果進行分組,并顯示每種類型的書籍?dāng)?shù)量。其中SQL查詢語句中,queryAll:統(tǒng)計每種圖書類型的借閱數(shù)量,并返回類型和借閱數(shù)量的結(jié)果集。myBookList:查詢當(dāng)前用戶借閱的圖書信息列表,包括圖書的各種屬性信息。部分關(guān)鍵代碼:@RequestMapping("count")
publicStringcount(){
return"chart";
}……………..<selectid="queryAll"resultType="com.zpy.pojo.MainMenu">
selectb.typeastype,count(r.rname)ascountfrombookbleftjoinreader_bookrbonrb.bid=b.id
leftjoinreaderronrb.rid=r.idgroupbyb.type
</select>
<selectid="myBookList"resultType="com.zpy.pojo.Book">
selectDISTINCTb.id,b.bname,b.type,b.author,b.stock,b.language,b.bimage
FROMbookb,readerr,reader_bookrbwhereb.id=rb.bidandrb.status=0andrb.rid=#{userId}
</select>5圖書館信息管理系統(tǒng)測試5.1系統(tǒng)測試環(huán)境構(gòu)建根據(jù)本文的圖書信息管理系統(tǒng)進行系統(tǒng)測試環(huán)境搭建。硬件環(huán)境:AMDRyzen55600HwithRadeonGraphics;操作系統(tǒng):Windows11;數(shù)據(jù)庫使用MySQL,編譯環(huán)境是IntellijIDEA2022,服務(wù)器是ApacheTomcat8.5.8,運行環(huán)境是谷歌瀏覽器。5.2系統(tǒng)功能測試在系統(tǒng)開發(fā)完成后,必不可少的是系統(tǒng)功能測試,其基于用戶使用角度,測試各部分模塊是否能實現(xiàn)預(yù)期功能。本系統(tǒng)使用黑盒測試對系統(tǒng)功能進行測試,黑盒測試具有全面性,能夠發(fā)現(xiàn)潛在的問題和錯誤,進而優(yōu)化系統(tǒng);黑盒測試具有可訪問性,可以更好地了解系統(tǒng)的內(nèi)部實現(xiàn)與結(jié)構(gòu),并且能夠驗證用戶界面是否符合預(yù)期。表5-1測試用例表測試用例編號功能點用例說明輸入預(yù)期結(jié)果執(zhí)行用例測試結(jié)果001登錄功能測試輸入正確的用戶名和密碼,能夠正確的登錄用戶輸入正確的用戶名:admin密碼:admin正確的登入系統(tǒng),并顯示系統(tǒng)首頁通過002注冊功能測試輸入正確的用戶名、密碼和確認密碼,能夠正常注冊用戶用戶名:test密碼:123確認密碼:123用戶注冊成功,返回登錄頁面通過003查詢用戶測試功能輸入正確的用戶名,能夠模糊查詢用戶信息輸入正確的用戶名:張三搜索出“張三”的用戶信息通過004添加用戶測試功能輸入讀者信息,如姓名、電話、郵箱、喜歡的書籍類型和頭像,能夠正確的添加讀者姓名:test電話:123456789郵箱:123@喜歡的書籍類型:漫畫類讀者頭像的文件上傳:空讀者添加成功,返回用戶列表界面通過005修改用戶信息測試功能在修改信息欄中替換已有的信息讀者姓名:test,修改為test1讀者信息修改成功,返回讀者列表,test用戶的用戶名改變?yōu)閠est1通過006刪除用戶測試功能能夠刪除用戶信息在用戶列表菜單操作欄中單擊“刪除”刪除用戶信息并返回用戶列表通過007查詢圖書功能測試輸入正確的圖書名,能夠模糊查詢圖書信息在搜索欄中輸入正確的圖書名:java返回所有含“java”名字的書籍通過008新增圖書功能測試輸入圖書名稱、圖書類型、作者、庫存、語言、圖像能添加成功到后臺數(shù)據(jù)庫圖書名稱、圖書類型、作者、庫存、語言、圖像圖書列表顯示新添加的書籍信息通過009刪除圖書功能測試點擊刪除按鈕可以成功刪除單擊刪除
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南糧食和物資儲備集團招聘面試題及答案
- 煙草物理檢驗員誠信能力考核試卷含答案
- 二甲胺裝置操作工崗后能力考核試卷含答案
- 貴州建設(shè)投資集團招聘面試題及答案
- 野生植物培植工安全培訓(xùn)效果競賽考核試卷含答案
- 員工薪酬公平維護承諾書4篇范文
- 石英玻璃熔制工崗前技能競賽考核試卷含答案
- 雕塑翻制工崗前班組建設(shè)考核試卷含答案
- 網(wǎng)絡(luò)安全管理員安全理論強化考核試卷含答案
- 浮法玻璃成型工10S考核試卷含答案
- JG/T 545-2018衛(wèi)生間隔斷構(gòu)件
- 物業(yè)管理服務(wù)三方協(xié)議書全
- 瀝青攤鋪培訓(xùn)課件
- 項目群管理中期匯報
- 電梯作業(yè)人員理論考試練習(xí)題庫
- 2025既有建筑改造利用消防設(shè)計審查指南
- 2025年安徽合肥蜀山科技創(chuàng)新投資集團有限公司招聘筆試參考題庫附帶答案詳解
- SOX404條款的實施-控制例外事項與缺陷的評估框架課件
- 《《家庭、私有制和國家的起源》導(dǎo)讀》課件
- 《水利水電工程水平定向鉆探規(guī)程》
- 低溫燙傷預(yù)防
評論
0/150
提交評論