摘? 要
為了能提高管理者的管理效能,現(xiàn)在的用戶在線借閱管理必須要脫離復雜的手工管理方式,通過與計算機技術結(jié)合開發(fā)的圖書管理系統(tǒng)可以很好的幫助圖書館管理圖書。
圖書管理系統(tǒng)采用Java語言,Springboot框架,MySQL數(shù)據(jù)庫進行開發(fā)。系統(tǒng)的主要功能包括:在線預覽借閱書籍、用戶登錄注冊、圖書分類管理、圖書借閱管理、圖書歸還管理等。權(quán)限管理問題中,因為管理員和用戶的各自業(yè)務有不一樣的性質(zhì),所以給予不同角色不同的權(quán)限,用戶可以實現(xiàn)在線借閱圖書,管理員可以圖書新增、分類、查詢、借閱管理細化等流程的管理。此系統(tǒng)的意義就在于能大大降低圖書館的開銷,減少工作人員的工作量,以及方便服務于讀者。
關鍵詞:圖書借閱;Java;Springboot;MySQL
abstract
In order to improve the management efficiency of managers, the current online borrowing management of users must break away from complex manual management methods. The book management system developed in combination with computer technology can effectively help libraries manage books.
The library management system is developed using Java language, Springboot framework, MySQL database. The main functions of the system include: online preview of borrowed books, user login registration, book classification management, book borrowing management, book return management, etc. In the issue of permission management, because the businesses of administrators and users are different in nature, different roles are given different permissions, so users can borrow books online, and administrators can manage processes such as adding, classifying, querying, and refining borrowing management. The significance of this system lies in its ability to greatly reduce library costs, reduce the workload of staff, and facilitate the service of readers.
?
目 ?錄
第一章 緒論..................................................................................................... 1
1.1 研究背景......................................................................................................................... 1
1.2 研究意義......................................................................................................................... 1
1.3 國內(nèi)外研究現(xiàn)狀............................................................................................................. 1
1.4 研究內(nèi)容......................................................................................................................... 2
第二章 系統(tǒng)技術............................................................................................. 4
2.1 MVC模式.......................................................................................................................... 4
2.2 MySQL數(shù)據(jù)庫.................................................................................................................. 4
2.3 Springboot框架............................................................................................................ 5
2.4 Java簡介......................................................................................................................... 6
第三章 需求分析............................................................................................. 7
3.1 系統(tǒng)目標......................................................................................................................... 7
3.2 系統(tǒng)可行性分析............................................................................................................. 7
3.3 功能需求分析................................................................................................................. 8
3.3.1 用例概述............................................................................................................. 8
3.3.2 用例描述............................................................................................................. 9
3.4 非功能需求分析........................................................................................................... 12
第四章 系統(tǒng)功能設計.................................................................................... 13
4.1 系統(tǒng)設計結(jié)構(gòu)............................................................................................................... 13
4.2 系統(tǒng)界面設計............................................................................................................... 13
4.3 功能模塊設計............................................................................................................... 15
4.4 功能詳細設計............................................................................................................... 16
4.5 數(shù)據(jù)庫設計................................................................................................................... 21
4.5.1 概念模型設計..................................................................................................... 21
4.5.2 數(shù)據(jù)庫表............................................................................................................. 23
第五章 系統(tǒng)詳細設計與實現(xiàn)........................................................................ 26
5.1 用戶注冊登錄............................................................................................................... 26
5.2 圖書信息管理............................................................................................................... 27
5.3 讀者管理....................................................................................................................... 28
5.4 圖書分類管理............................................................................................................... 29
5.5 圖書借閱管理............................................................................................................... 30
5.6 圖書歸還管理............................................................................................................... 31
5.7 圖書信息展示............................................................................................................... 33
5.8 圖書信息詳細頁面展示............................................................................................... 33
5.9 借閱圖書....................................................................................................................... 34
第六章 系統(tǒng)測試........................................................................................... 36
6.1 系統(tǒng)測試的目的........................................................................................................... 36
6.2 測試過程....................................................................................................................... 36
6.2.1 登錄測試........................................................................................................... 36
6.2.2 讀者管理測試................................................................................................... 37
6.2.3 圖書信息管理測試........................................................................................... 38
6.2.4 圖書借閱管理測試........................................................................................... 39
6.3 系統(tǒng)測試的總結(jié)........................................................................................................... 40
第七章 總結(jié)與展望....................................................................................... 41
參考文獻........................................................................................................ 42
致謝................................................................................................................ 44
第一章 緒論
1.1 研究背景
當前世界正處于高速發(fā)展階段,信息的高效是社會生產(chǎn)力的重要組成部分。圖書管理系統(tǒng)等使用與宣傳,是社會的資訊物化,方便了管理員與用戶,節(jié)省了管理者管理的精力,提高了辦事的速度[1]。
在如今的網(wǎng)絡時代,便捷、快捷的用戶在線借閱管理成為很多人首選的選擇。以往使用手工方式來管理用戶圖書借閱,但是這種方式不僅錯誤率很高,參考數(shù)據(jù)也很少,所以,要想有效地進行用戶的借閱,就必須要有一個更好的管理系統(tǒng)[2]。
1.2 研究意義
21個新世紀屬于大數(shù)據(jù)社會,由于在管理信息的層次上存在著海量的數(shù)據(jù),所以管理者要對海量的數(shù)據(jù)進行管理。因為電子電腦具有自動化的優(yōu)勢,所以許多用戶選擇使用電腦來進行海量的數(shù)據(jù),從而提高了圖書管理系統(tǒng)的工作效能與安全。對數(shù)據(jù)的處理愈是愈趨精密,愈能體現(xiàn)電腦管理之效益[3]。圖書管理系統(tǒng)可以自動化處理圖書館的日常操作,包括圖書的借閱、歸還、檢索和管理等。通過引入自動化技術,可以大大提高操作效率,減少人工工作量,實現(xiàn)工作的簡化和標準化[4];圖書管理系統(tǒng)可以幫助圖書館有效管理圖書資源。通過準確記錄和追蹤圖書的使用情況,可以更好地了解用戶需求和圖書流通情況,從而優(yōu)化資源配置和采購決策,避免資源浪費,降低圖書館的運營成本[5]。圖書管理系統(tǒng)提供了大量的圖書館數(shù)據(jù),如圖書流通情況、用戶借閱偏好等。通過對這些數(shù)據(jù)進行分析和挖掘,可以獲取有價值的信息和洞察,幫助圖書館制定更科學的決策和服務策略,提供更符合用戶需求的服務[6]。圖書管理系統(tǒng)可以提供在線查詢、借閱和續(xù)借等功能,使用戶可以方便快捷地獲取圖書信息和進行操作[7]。用戶可以通過系統(tǒng)自助完成借閱、歸還等操作,不再需要排隊等待,提高了用戶的滿意度和使用體驗,提升了圖書館的服務質(zhì)量。
1.3 國內(nèi)外研究現(xiàn)狀
1.3.1國外研究現(xiàn)狀
目前看來,國外的圖書管理系統(tǒng)主要在往自動化系統(tǒng)方向發(fā)展。要進一步對這一系統(tǒng)進行分析與研究,是建立在前文提到的“第三代圖書館自動化系統(tǒng)”基礎之上這一系統(tǒng)在以下幾個方面都取得了比較大的進步由于其使用的體系結(jié)構(gòu)較為完善,并結(jié)合了UNX標準,對于多種平臺具備通用性和兼容性等性質(zhì)。這些先進的圖書館自動化系統(tǒng)側(cè)是以C/S為框架的[8]。此外,立足于組件模式的體系結(jié)勾能夠充分保證系統(tǒng)可以實現(xiàn)靈活配置,由于其兼容性還可以在多個硬件平臺上進行大規(guī)模的事務處理,因而該系統(tǒng)的運行效率大大提高高,加之有極其重要的意義,更能拓展該系統(tǒng)的功能模由于所提供的鏈接具有開放性,因而能實現(xiàn)系統(tǒng)之間的互相操作。。在亥思想的指引下,部分圖書館認為期刊是其建立的鏈接數(shù)據(jù)庫所選擇的紐帶。憑借該紐帶的作用可以獲取并存儲該期刊的Wb站點、到刊情況等,另外還能對期刊文摘、次數(shù)、文章全文進行取[9]。
圖書館自動化廠商需要基于現(xiàn)有的自動化系統(tǒng),建立和研發(fā)新型數(shù)字內(nèi)容管理平臺,以匯集、處理、整理和運用圖書館的館藏書目資源和多樣化的數(shù)字資源,包括管理頻、圖像和其他多媒體內(nèi)容,同時與傳統(tǒng)圖書記錄進行集成[10]。
1.3.2國內(nèi)研究現(xiàn)狀
國內(nèi)的圖書管理系統(tǒng)目前已經(jīng)相當發(fā)達和普及。許多圖書館和機構(gòu)都采用了各種類型的圖書管理系統(tǒng)來管理和維護其館藏資源。這些系統(tǒng)通常包括圖書借還、圖書目錄管理、讀者管理、預約和預訂、圖書采購和訂購、圖書流通統(tǒng)計等功能[11]。
一些主流的圖書管理系統(tǒng)供應商在國內(nèi)市場有一定的市場份額,提供多樣化的解決方案,以滿足不同圖書館和機構(gòu)的需求。這些系統(tǒng)通常具有良好的用戶界面和易于使用的功能,能夠提供高效的圖書管理和服務。
1.4 研究內(nèi)容
以下是關于這篇文章的文獻編目:
第一章為緒論部分。該章重點闡述了研究環(huán)境和意義,研究現(xiàn)狀,以及本文的結(jié)構(gòu)。
第二章為系統(tǒng)技術介紹。對MySQL、Java、JSP等進行介紹。
第三章為需求分析。該章對圖書管理系統(tǒng)的功能和功能要求進行了詳盡的描述。
第四章為系統(tǒng)功能設計。進行了系統(tǒng)功能分析和數(shù)據(jù)庫設計。
第五章為系統(tǒng)實現(xiàn)。介紹各功能模塊。
第六章對本論文進行了測試。這一章討論了利用黑盒子進行系統(tǒng)的測試。
第二章 系統(tǒng)技術
2.1 MVC模式
MVC(Model-View-Controller)是一種軟件架構(gòu)模式,用于組織和管理應用程序的代碼結(jié)構(gòu)。它將應用程序分為三個主要部分:模型(Model)、視圖(View)和控制器(Controller),每個部分都有不同的責任和功能[12]。
模型(Model)代表應用程序的數(shù)據(jù)和業(yè)務邏輯[13]。它負責處理數(shù)據(jù)的讀取、存儲、驗證和處理等操作。模型部分通常包含與數(shù)據(jù)庫、文件系統(tǒng)或其他數(shù)據(jù)源進行交互的代碼,并提供對數(shù)據(jù)的操作方法和業(yè)務規(guī)則的定義。模型與具體的數(shù)據(jù)表示方式無關,可以獨立于視圖和控制器進行修改和擴展[14]。視圖(View)負責展示模型的數(shù)據(jù)給用戶,并接收用戶的輸入[15]。它是用戶界面的可視化表示,可以是一個網(wǎng)頁、一個圖形界面或者其他形式的用戶界面。視圖根據(jù)模型的數(shù)據(jù)來呈現(xiàn)用戶所需的信息,并將用戶的輸入轉(zhuǎn)發(fā)給控制器進行處理[16]??刂破鳎–ontroller)充當模型和視圖之間的協(xié)調(diào)者和中介者。它接收來自視圖的用戶輸入,并根據(jù)用戶的操作調(diào)用相應的模型方法進行處理??刂破鬟€負責將模型的數(shù)據(jù)更新反映到視圖上,以確保視圖與模型的數(shù)據(jù)保持同步。通過控制器,模型和視圖能夠相互獨立地進行修改和演化。
MVC的設計思想使得應用程序的代碼結(jié)構(gòu)清晰、可維護和可擴展[17]。它通過將應用程序的不同部分分離開來,實現(xiàn)了代碼的解耦和職責的分離,使得團隊中的開發(fā)人員可以并行工作并專注于各自的領域。MVC模式被廣泛應用于各種軟件開發(fā)框架和平臺,包括Web應用程序、桌面應用程序和移動應用程序等[8]。采用 MVC方法不僅能動態(tài)地提高圖書管理系統(tǒng)的代碼質(zhì)量,而且減少了對 SQL語句的反復編寫,使之具有通用性,從而實現(xiàn)了對數(shù)據(jù)庫的特定的處理。MVC技術能夠簡化圖書管理系統(tǒng)的編碼率,從而達到改善編碼的目的。MVC三個主要模型分別是模型、視圖和控制面板[9]。在 MVC的設計模式下,可以將模型與系統(tǒng)的主體進行交換,而控件則可以根據(jù)用戶對頁面的需求進行處理,而視圖則可以將用戶的頁面展示給用戶。在 MVC模式下,可以將模型的數(shù)據(jù)轉(zhuǎn)化為可視化。如果模型發(fā)生了變化,則可以在用戶界面上顯示轉(zhuǎn)換后的數(shù)據(jù)[20]。
2.2 MySQL數(shù)據(jù)庫
MySQL是一個開源的關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典的MySQL AB公司開發(fā)。 MySQL支持不同的操作系統(tǒng),性能高、體積小,安裝維護簡單,成本低[21]。
MySQL支持多用戶、多線程和多個存儲引擎,其中最常用的存儲引擎是InnoDB。它提供了豐富的功能,包括數(shù)據(jù)存儲、檢索和管理,事務處理、數(shù)據(jù)復制和高可用性等。MySQL還支持SQL(結(jié)構(gòu)化查詢語言),使得開發(fā)人員可以方便地執(zhí)行各種數(shù)據(jù)庫操作,如創(chuàng)建表、插入數(shù)據(jù)、查詢數(shù)據(jù)和更新數(shù)據(jù)等。MySQL的設計目標之一是性能優(yōu)化[22]。它通過采用索引、緩存和查詢優(yōu)化等技術來提高查詢速度和吞吐量。MySQL還支持垂直和水平擴展,可以通過添加更多的硬件資源或配置主從復制來處理更大的數(shù)據(jù)負載和提高系統(tǒng)的可伸縮性。除了性能和可伸縮性,MySQL還注重數(shù)據(jù)安全性。它支持用戶身份驗證、訪問控制和數(shù)據(jù)加密等功能,以確保數(shù)據(jù)庫中的數(shù)據(jù)得到保護。此外,MySQL還提供了備份和恢復機制,以及日志記錄和故障診斷工具,幫助管理員有效管理和維護數(shù)據(jù)庫系統(tǒng)[23]。
MySQL作為開源軟件,具有廣泛的社區(qū)支持和活躍的開發(fā)者社區(qū)[24]。它有一個強大的生態(tài)系統(tǒng),提供了各種工具和框架,以簡化MySQL的使用和管理[25]。此外,MySQL與許多編程語言和平臺都有良好的集成和驅(qū)動程序支持,使得開發(fā)人員可以方便地與MySQL進行交互和開發(fā)應用程序。
2.3 Springboot框架
Spring Boot是一個用于快速構(gòu)建Java應用程序的開源框架。它基于Spring框架,簡化了Java應用程序的開發(fā)過程,并提供了一種約定優(yōu)于配置的編程模型[26]。Spring Boot通過自動配置和默認值,減少了繁瑣的配置工作,讓開發(fā)者能夠更專注于業(yè)務邏輯的實現(xiàn)。它還集成了諸多常用的第三方庫和工具,提供了豐富的功能和擴展性。Spring Boot的核心理念是"約定優(yōu)于配置",這意味著開發(fā)者可以通過一些簡單的約定來快速構(gòu)建應用程序,而無需進行繁雜的配置。它提供了一個基于注解的編程模型,開發(fā)者可以通過注解輕松地聲明和配置各種組件,如控制器、服務、數(shù)據(jù)訪問對象等。同時,Spring Boot還提供了豐富的起步依賴(Starter)庫,這些庫內(nèi)置了各種常用的功能和集成,開發(fā)者可以直接引入并開始使用,而無需手動配置[27]。Spring Boot還提供了內(nèi)嵌的Web服務器,如Tomcat、Jetty等,使得開發(fā)者可以在應用程序中直接運行Web服務,無需額外安裝和配置外部服務器。此外,它還支持自動化的配置和管理,提供了健康檢查、日志管理、安全性等方面的支持,簡化了應用程序的部署和運維工作[28]。
2.4 Java簡介
Java是一種廣泛使用的高級編程語言,它具有簡單、可移植、安全和面向?qū)ο蟮忍匦?,被廣泛應用于各種領域的軟件開發(fā)[29]。
Java由Sun Microsystems(現(xiàn)在是Oracle Corporation的一部分)于1995年推出。它的設計目標之一是"Write Once, Run Anywhere"(一次編寫,到處運行),意味著Java程序可以在不同的操作系統(tǒng)和硬件平臺上運行,而無需重新編寫。這得益于Java虛擬機(JVM)的存在,它將Java程序編譯成字節(jié)碼,并在各個平臺上解釋執(zhí)行。Java是一種面向?qū)ο蟮恼Z言,它支持封裝、繼承和多態(tài)等面向?qū)ο蟮母拍?。開發(fā)者可以使用類和對象來組織和管理代碼,實現(xiàn)代碼的重用和模塊化[30]。Java提供了豐富的類庫和API,涵蓋了各種常見的功能,如字符串處理、文件操作、網(wǎng)絡通信和圖形用戶界面等,開發(fā)者可以直接使用這些類庫來加速開發(fā)過程。Java還強調(diào)安全性。它提供了各種安全機制,如字節(jié)碼驗證、安全管理器和安全沙箱等,以防止惡意代碼的執(zhí)行和數(shù)據(jù)的泄露。這使得Java在開發(fā)網(wǎng)絡應用程序和安全敏感的系統(tǒng)時得到廣泛應用。
除了桌面應用程序開發(fā),Java也是Web應用程序開發(fā)的重要工具[31]。Java提供了Java Servlet和JavaServer Pages(JSP)等技術,用于開發(fā)服務器端的Web應用程序。同時,Java的開源Web框架(如Spring和Hibernate)和應用服務器(如Tomcat和Jboss)也為Web開發(fā)提供了豐富的工具和平臺。Java還廣泛應用于移動應用程序開發(fā)。通過Java平臺的衍生版本,如Android開發(fā)平臺,開發(fā)者可以創(chuàng)建功能強大的移動應用程序,覆蓋了數(shù)以億計的移動設備用戶。此外,Java語言還有標準版、企業(yè)版、ME版等對應不同的技術,涉及平臺多,范圍廣,相關技術貼多或論壇討論氛圍較好。與C語言對比,Java采用引用的方式替代指針,且內(nèi)部提供安全檢查機制、異常處理機制、垃圾收集機制,方便程序員理解與管理操作。綜合上述,本課題采用Java做為該圖書管理系統(tǒng)的后臺邏輯技術語言。
第三章 需求分析
3.1 系統(tǒng)目標
本系統(tǒng)包括了服務管理等工作,采用 MVC的設計方法和 MySQL數(shù)據(jù)庫來實現(xiàn)對用戶在線借閱管理,目的在于方便用戶,提高管理員的工作效率。
(1)各子系統(tǒng)應具有獨立且平滑的特點,有利于各子系統(tǒng)的發(fā)展與維修。
(2)充分地顧及對經(jīng)營過程中的責任劃分,盡量將各職能子系統(tǒng)置于便于對子系統(tǒng)進行管理的責任范圍內(nèi)。
在用戶的功能層次上,用戶的接口應該更加友好,用戶可以簡單的使用。在開發(fā)過程中,要注意系統(tǒng)的開發(fā)費用,提高工作的效能。
3.2 系統(tǒng)可行性分析
本文在分析了該系統(tǒng)的目的以后,從技術與經(jīng)濟學的角度分析了圖書管理系統(tǒng)管理系統(tǒng)的可行性。
(1)技術上是可行的。在開發(fā)圖書管理系統(tǒng)的時候,軟件和軟件的要求相對較少,只要Win10就行了,所需硬件的價格不貴,而且每家現(xiàn)在基本都有電腦。在軟件方面,僅需在許多應用中使用的數(shù)據(jù)庫及編譯器環(huán)境即可運行,因此其開發(fā)費用相對低廉。
(2)在財務上可行。經(jīng)濟學上的可行性是指通過圖書管理系統(tǒng)所賺取的利潤,可以超過軟件的研發(fā)和設計費用。利用這個系統(tǒng),可以極大地降低人力的實際工作,提高管理員的管理工作的質(zhì)量。采用開放源系統(tǒng)結(jié)構(gòu),采用開放源系統(tǒng)結(jié)構(gòu)可以降低開發(fā)費用。該圖書管理系統(tǒng)具有很好的擴展性和易于維修,從而極大地降低了以后的維修費用。
(3)在實際應用中是可行的。圖書管理系統(tǒng)的發(fā)展目的就是要讓用戶能夠方便地進行具體的運作,在系統(tǒng)的設計與實施中,一定要注意到用戶在實際的運作中是否能起到作用。此次的圖書管理系統(tǒng)管理系統(tǒng)沒有選擇過分的專業(yè)化,采用的按鍵和接口用戶更熟悉。
3.3 功能需求分析
3.3.1 用例概述
用戶:個人中心、借閱、評論圖書、歸還圖書等。
圖3.1 用戶用例圖
圖書管理員:讀者管理、圖書分類管理、圖書借閱管理、借書證管理等。
圖3.2 管理員用例圖
3.3.2 用例描述
(1)讀者信息管理
在表格3.1中給出了讀者信息管理案例的說明。
表3.1 讀者信息管理用例描述
用例標識 |
3.1 |
用例名稱 |
管理讀者信息 |
參與者 |
管理員 |
前置條件 |
管理員必須輸入正確的帳號和密碼以登錄該系統(tǒng) |
后置條件 |
管理讀者 |
用例概述 |
管理員管理讀者 |
基本事件流 |
1.管理員輸入用戶名和密碼 2.管理員點擊添加按鈕,在讀者信息管理界面中提交新增加的讀者信息 3.只有讀者信息跟數(shù)據(jù)庫信息不同,讀者信息才能夠添加成功 |
備選事件流 |
4. 添加的信息需要注意字符合法性才能夠成功添加 |
備注 |
(2)圖書信息管理
圖書信息管理用例描述如表3.2所示。
表3.2 圖書信息管理用例描述
用例標識 |
3.2 |
用例名稱 |
圖書管理 |
參與者 |
管理員 |
前置條件 |
管理員必須輸入正確的帳號和密碼以登錄該系統(tǒng) |
后置條件 |
管理圖書信息 |
用例概述 |
管理員修改圖書信息 |
基本事件流 |
1.管理員輸入用戶名和密碼 2.管理員在圖書信息管理界面上點擊修改按鈕,提交修改后的圖書信息 3.圖書信息修改成功 |
備選事件流 |
4. 修改的信息需要注意字符合法性才能夠成功修改 |
備注 |
(3)圖書借閱信息管理
圖書借閱信息管理用例描述如表3.3所示。
表3.3 圖書借閱信息管理用例描述
用例標識 |
3.3 |
用例名稱 |
圖書借閱管理 |
參與者 |
管理員 |
前置條件 |
管理員登錄系統(tǒng) |
后置條件 |
審核圖書借閱 |
用例概述 |
管理員審核圖書借閱 |
基本事件流 |
1.管理員登錄系統(tǒng) 2.管理員按下審核鍵,點擊通過,將更改后的圖書借閱資料提交至圖書借閱信息管理界面 3.審核借閱信息刪除成功 |
備選事件流 |
|
備注 |
(4)登錄
登錄用例描述如表3.4所示。
表3.4 登錄用例描述
用例標識 |
3.4 |
用例名稱 |
登錄 |
參與者 |
讀者 |
前置條件 |
讀者需要輸入正確的用戶名和密碼 |
后置條件 |
登錄 |
用例概述 |
讀者登錄 |
基本事件流 |
1. 讀者登錄網(wǎng)頁 2. 讀者在系統(tǒng)中輸入信息 |
備選事件流 |
4. 如果需要成功登錄,必須輸入與數(shù)據(jù)庫信息相符的信息 |
備注 |
(5)個人中心
個人中心用例描述如表3.5所示。
表3.5 個人中心用例描述
用例標識 |
3.5 |
用例名稱 |
個人中心 |
參與者 |
讀者、管理員 |
前置條件 |
讀者、管理員必須訪問配置文件更改頁 |
后置條件 |
修改個人信息 |
用例概述 |
讀者、管理員管理個人信息 |
基本事件流 |
1. 讀者、管理員經(jīng)理登錄網(wǎng)頁 2.使讀者、管理員在該系統(tǒng)內(nèi)輸入用戶名及密碼 3.更改自己的個人信息到自己的個人信息更改頁 |
備選事件流 |
4. 只有輸入的信息合法才能夠成功修改 |
備注 |
(6)圖書借閱
圖書借閱用例描述如表3.6所示。
表3.6 圖書借閱用例描述
用例標識 |
3.6 |
用例名稱 |
圖書借閱 |
參與者 |
讀者 |
前置條件 |
讀者進入到圖書詳細信息頁面中 |
后置條件 |
借閱圖書 |
用例概述 |
讀者在線借閱圖書 |
基本事件流 |
1.讀者登錄網(wǎng)頁 2.在這個系統(tǒng)中,讀者鍵入了一個用戶名和密碼 3.在圖書詳細信息網(wǎng)頁中點擊在線借閱 |
備選事件流 |
4. 只有點擊相應的按鈕才能夠借閱 |
備注 |
3.4 非功能需求分析
(1)用戶在使用客戶端進行系統(tǒng)訪問時,需要檢查是否具有良好的性能,并可以設置多臺服務器,從而提高其功能。MySQL具有高速緩存功能,它能根據(jù)圖書管理系統(tǒng)的數(shù)據(jù)進行高速緩沖,對數(shù)據(jù)庫的主要性能進行調(diào)節(jié),從而提高數(shù)據(jù)庫的性能。如果使用了數(shù)據(jù)庫的緩沖功能,那么用戶在看到相同的信息時,就能立刻從高速緩存中讀出信息,從而提高了數(shù)據(jù)的閱讀速度。
(2)在運行過程中,圖書管理系統(tǒng)的運行需要有足夠的穩(wěn)定性,能夠承受一些壓力。在代碼出現(xiàn)輕微錯誤時,圖書管理系統(tǒng)的操作應該不會受到任何的干擾。如果系統(tǒng)因為故障而導致了故障,那么這就說明了圖書管理系統(tǒng)的功能是否還能正常使用。
(3)當在進行圖書管理系統(tǒng)管理的時候,一定要注意它的維護性,它的實施要選擇多個層次的架構(gòu)來完成,在軟件開發(fā)人員的分工下,要注意它的建立,以利于以后的維護。
(4)該圖書管理系統(tǒng)提供了一個靈活的查詢控制功能,當管理員輸入信息時,就可以生成一個查詢,從而提高了查詢的速度。
第四章 系統(tǒng)功能設計
4.1 系統(tǒng)設計結(jié)構(gòu)
本系統(tǒng)采用B/S架構(gòu)進行設計,B/S模式最大的優(yōu)勢在于,如果系統(tǒng)是有網(wǎng)絡的,可以使用它。該系統(tǒng)依靠網(wǎng)絡技術,所以當系統(tǒng)管理員不需要再設置更多的專門的程序,而且管理員也不會浪費時間去進行軟件的維護。
同時,在為用戶設置操作接口的同時,也要保留用戶所輸入的所有資料,并對用戶提出的要求進行相應的處理,而由服務邏輯對接收到的資料進行相應的運算,最終將所得到的結(jié)果呈現(xiàn)在用戶面前。而服務器方則負責接收來自于用戶的點擊。最后,向數(shù)據(jù)庫端提出了一個要求,要求數(shù)據(jù)庫服務器完成相應的數(shù)據(jù)記錄,然后將采集到的數(shù)據(jù)進行處理,便可以將相應的結(jié)果反饋給瀏覽器。
圖4.1 架構(gòu)設計圖
4.2 系統(tǒng)界面設計
系統(tǒng)界面設計是一個重要的方面,它直接影響用戶的體驗和系統(tǒng)的可用性。界面應簡潔明了,避免過多的復雜元素和冗余信息,使用戶能夠迅速找到需要的功能和信息。設計清晰的導航和菜單系統(tǒng),使用戶能夠方便地瀏覽不同功能和頁面,并快速跳轉(zhuǎn)到所需的內(nèi)容。本系統(tǒng)分為用戶端和管理端,界面分別為圖4.2、圖4.3所示。
圖4.2 用戶端界面圖
圖4.3 管理端界面圖
6
4.3 功能模塊設計
該圖書借閱系統(tǒng)的分為前臺和后端,前臺功能可以查看系統(tǒng)首頁,圖書信息以及公告信息,也可以使用留言功能頁面,以及查看自己個人中心以及輪播圖。后臺能進行個人中心的信息更改,對用戶進行操作,對圖書進行各種操作,如還書、借書、圖書類型以及留言信息管理。
圖4.4 功能模塊圖
主要功能描述如下:
個人中心:提供用戶個人信息的管理修改。
讀者管理:用于管理圖書館的讀者信息,包括修改讀者信息、新增讀者信息、刪除讀者等信息。
圖書分類管理:用于管理圖書的分類信息,包括創(chuàng)建、編輯和刪除圖書分類,以便讀者能夠方便地瀏覽和查找圖書。
圖書信息管理:用于管理圖書的詳細信息。
借閱圖書管理:用于讀者借閱圖書的管理,包括審核借閱、修改借閱等。
歸還圖書管理:用于讀者歸還已借閱的圖書的管理,包括審核歸還、刪除歸還等。
借書證管理:用于管理借書證的發(fā)放和管理。
舊書出庫管理:用于管理圖書館的舊書出庫流程。
在線留言管理:用于讀者和圖書館之間的在線溝通和留言。
4.4 功能詳細設計
(1)登錄。用戶需要用戶名和密碼,是否與數(shù)據(jù)庫中的數(shù)據(jù)匹配,如果相同則進入首頁此流程結(jié)束,如果錯誤則重新進去登錄界面,再一次進行密碼和賬號的驗證,直到驗證正確。
圖4.5 登錄流程圖
圖4.6 用戶登錄時序圖
圖4.7 用戶登錄類圖
(2)注冊。用戶登錄前需進行注冊,在注冊頁面進行信息填寫,判斷用戶名是否存在,如果存在就需要重新填寫,如果存在判斷兩次輸入的密碼是否一致,然后注冊信息保存在數(shù)據(jù)庫中,返回登錄頁面。
圖4.8 注冊流程圖
圖4.9 用戶注冊時序圖
圖4.10 用戶注冊類圖
(3)讀者信息管理。管理員可以對讀者信息進行管理,在登錄頁面中輸入賬號密碼,在數(shù)據(jù)庫信息中驗證賬戶密碼是否一致,如果錯誤則返回登錄重新填寫,如果正確則進入讀者信息界面,可以查閱信息,修改信息,添加信息或者刪除信息,最后流程結(jié)束,如圖4.6所示。
圖4.11 讀者管理流程圖
圖4.12 新增讀者時序圖
圖4.13 讀者信息類圖
(4)圖書信息管理。管理員可以對圖書信息進行增刪改查,修改圖書信息時像控制器進行請求,在向Controller驗證參數(shù),之后發(fā)送圖書信息,生成圖書信息表,返回操作的圖書信息,提示是否成功,最后顯示操作成果。
圖4.14 圖書信息管理流程圖
圖4.15 修改圖書信息時序圖
圖4.16 圖書信息類圖
4.5 數(shù)據(jù)庫設計
數(shù)據(jù)庫是一個文件倉庫,可以利用相關 api接口來進行數(shù)據(jù)的存儲。很久很久以前,可以將數(shù)據(jù)存儲在文件里面,但是使用這個方法來存儲和閱讀數(shù)據(jù)的速度并不是很高,所以在使用 MySQL的時候,系統(tǒng)就需要使用 MySQL來存儲和閱讀這些數(shù)據(jù)。MySQL是一個自由的開放源碼系統(tǒng),建立在一個建立在一個關聯(lián)的基礎上的關系數(shù)據(jù)庫。
4.5.1 概念模型設計
(1)當數(shù)據(jù)被加工時,能夠滿足用戶的需要,能夠更加理性地呈現(xiàn)和對實際世界的看法。
(2)用戶在實際的操作中要很方便地進行,并且要把數(shù)據(jù)庫的結(jié)構(gòu)更加的簡單,但是要易于理解。
(3)當以后的數(shù)據(jù)要求發(fā)生變化時,可以很容易地、快速地修改數(shù)據(jù)庫和建模結(jié)構(gòu)。
圖4.17 用戶實體圖
圖4.18 圖書信息實體圖
圖4.19 圖書歸還實體圖
圖4.20 圖書借閱實體圖
圖4.21 數(shù)據(jù)庫E-R圖
4.5.2 數(shù)據(jù)庫表
(1)圖書信息評論表,由id為主鍵,此表定義了圖書評論的在數(shù)據(jù)庫中的基本信息。其中表中包含了評論創(chuàng)建時間、用戶信息、以及評論回復信息。
表4.1 圖書信息評論表
列名 |
數(shù)據(jù)類型 |
長度 |
說明 |
id |
bigint |
20 |
主鍵 |
addtime |
timestamp |
0 |
創(chuàng)建時間 |
refid |
bigint |
20 |
關聯(lián)表id |
userid |
bigint |
20 |
用戶id |
nickname |
varchar |
20 |
用戶名 |
content |
longtext |
0 |
評論內(nèi)容 |
reply |
longtext |
0 |
回復內(nèi)容 |
(2)用戶表,id為主鍵,此表定義了用戶在數(shù)據(jù)庫的基本信息。包括用戶名,密碼、姓名、性別等用戶信息。
表4.2 用戶表
列名 |
數(shù)據(jù)類型 |
長度 |
說明 |
id |
bigint |
20 |
主鍵 |
addtime |
timestamp |
30 |
創(chuàng)建時間 |
yonghuming |
varchar |
20 |
用戶名 |
mima |
varchar |
20 |
密碼 |
xingming |
varchar |
20 |
姓名 |
xingbie |
varchar |
2 |
性別 |
touxiang |
varchar |
200 |
頭像 |
youxiang |
varchar |
20 |
郵箱 |
shouji |
varchar |
20 |
手機 |
(3)公告資訊表,id為主鍵,此表定義了公告在數(shù)據(jù)庫中的創(chuàng)建時間、標題、簡介、圖片以及公告內(nèi)容。
表4.3 公告資訊表
列名 |
數(shù)據(jù)類型 |
長度 |
說明 |
id |
bigint |
20 |
主鍵 |
addtime |
timestamp |
0 |
創(chuàng)建時間 |
title |
varchar |
200 |
標題 |
introduction |
longtext |
200 |
簡介 |
picture |
varchar |
200 |
圖片 |
content |
longtext |
200 |
內(nèi)容 |
(4)圖書歸還表,數(shù)據(jù)庫中id為主鍵,其中包括圖書的基本信息,書的歸還日期與借閱日期,也包括用戶的信息和管理者的審核以及回復。
表4.5 圖書歸還表
列名 |
數(shù)據(jù)類型 |
長度 |
說明 |
id |
bigint |
20 |
主鍵 |
addtime |
timestamp |
0 |
創(chuàng)建時間 |
tushumingcheng |
varchar |
200 |
圖書名稱 |
tushuleixing |
varchar |
200 |
圖書類型 |
jieyueriqi |
varchar |
200 |
借閱日期 |
guihairiqi |
datetime |
0 |
歸還日期 |
guihaineirong |
longtext |
20 |
歸還內(nèi)容 |
yonghuming |
varchar |
20 |
用戶名 |
xingming |
varchar |
20 |
姓名 |
shouji |
varchar |
200 |
手機 |
crossuserid |
bigint |
20 |
跨表用戶id |
crossrefid |
bigint |
20 |
跨表主鍵id |
sfsh |
varchar |
200 |
是否審核 |
shhf |
longtext |
200 |
審核回復 |
(5)圖書類型表,id為主鍵,定義圖書類型在數(shù)據(jù)庫中的信息。有創(chuàng)建的時間,圖書的類型。
表4.4 圖書類型表
列名 |
數(shù)據(jù)類型 |
長度 |
說明 |
id |
bigint |
20 |
主鍵 |
addtime |
timestamp |
0 |
創(chuàng)建時間 |
tushuleixing |
varchar |
20 |
圖書類型 |
(6)圖書借閱表,在數(shù)據(jù)庫中定義圖書借閱的基本信息。里面包括圖書編號、圖書名稱、圖書類型,除了圖書的基本信息還有借閱的基本信息,比如借閱時間、天數(shù),也有用戶的信息,管理員審核的狀態(tài)。
表4.6 圖書借閱表
列名 |
數(shù)據(jù)類型 |
長度 |
說明 |
id |
bigint |
20 |
主鍵 |
addtime |
timestamp |
0 |
創(chuàng)建時間 |
tushubianhao |
varchar |
200 |
圖書編號 |
tushumingcheng |
varchar |
200 |
圖書名稱 |
tushuleixing |
varchar |
200 |
圖書類型 |
jieyueriqi |
date |
0 |
借閱日期 |
jieyuetianshu |
varchar |
200 |
借閱天數(shù) |
beizhu |
varchar |
200 |
備注 |
yonghuming |
varchar |
20 |
用戶名 |
xingming |
varchar |
20 |
姓名 |
shouji |
varchar |
20 |
手機 |
sfsh |
varchar |
200 |
是否審核 |
shhf |
longtext |
200 |
審核回復 |
第五章 系統(tǒng)詳細設計與實現(xiàn)
5.1 用戶注冊登錄
如果需要登記,就需要輸入相應的用戶數(shù)據(jù),然后在注冊完成后,就可以登錄了,如果需要登錄,就需要輸入相應的身份,然后輸入相應的信息。邏輯代碼中的邏輯代碼需要定義,用戶的信息可以根據(jù)用戶的姓名來查找,用戶的個人數(shù)據(jù)可以被查詢到,如果用戶輸入的用戶名稱與數(shù)據(jù)庫記錄不符,那么在后臺的服務窗口就會提示用戶。用戶也可以選擇重新設置的口令,激活 session包含的 invalidate來取消用戶。
圖5.1 登錄界面
部分代碼以及解釋如下:
????? /**
????? ?* 登錄
????? ?*/
????? @IgnoreAuth
????? @RequestMapping(value = "/login")
????? public R login(String username, String password, String captcha, HttpServletRequest request) {
???????????? UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
???????????? if(user==null || !user.getPassword().equals(password)) {
??????????????????? return R.error("賬號或密碼不正確");
方法使用@IgnoreAuth注解,這意味著訪問此登錄端點不需要進行身份驗證。這個注解是你的應用程序中定義的自定義注解。使用@RequestMapping注解將該方法映射到"/login"的URL路徑上。該方法接受四個參數(shù):username、password、captcha和HttpServletRequest request。通過調(diào)用userService的selectOne方法,根據(jù)提供的username從數(shù)據(jù)庫中檢索用戶實體。selectOne方法使用EntityWrapper類進行查詢,根據(jù)"username"字段的相等性進行過濾。如果未找到具有給定用戶名的用戶或密碼與用戶的密碼不匹配,則使用R.error方法返回一個帶有錯誤消息的響應。返回的錯誤消息是"賬號或密碼不正確"。
5.2 圖書信息管理
如果在圖書信息管理接口中顯示了信息,則可以采用網(wǎng)頁的形式進行展示,如果網(wǎng)頁上的數(shù)據(jù)比較多,則可以進入下一頁,使用網(wǎng)頁特定的工具類別來完成上一頁和下一頁的效果。當管理員在輸入框中輸入的圖書信息名稱時,需要將其傳遞給后端邏輯代碼的query函數(shù),并且,在得到該圖書信息時,需要將該消息輸入到前面的接口中。如果管理員點擊刪除鍵,那么就需要設置刪除功能,使用SQL聲明刪除設置。
圖5.2 圖書信息管理界面
部分代碼以及解釋如下:
??? /**
???? * 修改
???? */
??? @RequestMapping("/update")
??? @Transactional
??? public R update(@RequestBody TushuxinxiEntity tushuxinxi, HttpServletRequest request){
??????? //ValidatorUtils.validateEntity(tushuxinxi);
??????? tushuxinxiService.updateById(tushuxinxi);//全部更新
??????? return R.ok();
??? }
方法使用@RequestMapping注解將該方法映射到"/update"的URL路徑上。該方法接受兩個參數(shù):tushuxinxi和HttpServletRequest request。其中,tushuxinxi參數(shù)使用@RequestBody注解表示該參數(shù)從請求體中獲取,并將其轉(zhuǎn)換為TushuxinxiEntity對象。方法內(nèi)部使用@Transactional注解表示該方法需要在事務內(nèi)執(zhí)行,以確保數(shù)據(jù)的一致性和完整性。
5.3 讀者管理
管理員在管理讀者的數(shù)據(jù)時,前面的讀者顯示需要使用列表函數(shù),并且在前面和后面的數(shù)據(jù)是由請求對象來傳遞的。讀者的信息被包裝成頁面的目的,而前面的接口使用規(guī)則運算來對頁面進行解析。
圖5.3 讀者管理界面
部分代碼以及解釋如下:
??? @RequestMapping("/session")
??? public R getCurrUser(HttpServletRequest request){
??? ???? Long id = (Long)request.getSession().getAttribute("userId");
??????? DuzheEntity u = duzheService.selectById(id);
??????? return R.ok().put("data", u);
??? }
方法使用@RequestMapping注解將該方法映射到"/session"的URL路徑上。該方法接受一個參數(shù):HttpServletRequest request,用于獲取當前的HTTP請求對象。代碼中使用request.getSession().getAttribute("userId")來獲取名為"userId"的會話屬性。request.getSession()返回當前會話對象,而getAttribute("userId")方法用于獲取名為"userId"的會話屬性值。這里假設"userId"屬性的值是一個Long類型。獲取到"userId"屬性的值后,使用duzheService.selectById(id)方法從數(shù)據(jù)庫中查詢DuzheEntity對象。duzheService是一個業(yè)務邏輯層的服務類,通過調(diào)用selectById(id)方法查詢具有指定ID的DuzheEntity對象。最后,方法返回一個帶有"data"數(shù)據(jù)的響應,使用R.ok().put("data", u)方法創(chuàng)建。其中,"data"是返回數(shù)據(jù)的鍵,u是查詢到的DuzheEntity對象。
5.4 圖書分類管理
如果在圖書分類管理接口中顯示了信息,則可以采用網(wǎng)頁的形式進行展示,如果網(wǎng)頁上的數(shù)據(jù)比較多,則可以進入下一頁,使用網(wǎng)頁特定的工具類別來完成上一頁和下一頁的效果。當管理員在輸入框中輸入的圖書分類名稱時,需要將其傳遞給后端邏輯代碼的query函數(shù),并且,在得到該圖書分類的信息時,需要將該消息輸入到前面的接口中。修改鍵的時間,一定要符合邏輯代碼設置的更新功能。如果圖書分類點擊刪除鍵,那么就需要設置刪除功能,使用SQL聲明刪除設置。
圖5.4 圖書分類管理界面
部分代碼以及解釋如下:
???? /**
???? * 查詢
???? */
??? @RequestMapping("/query")
??? public R query(TushufenleiEntity tushufenlei){
??????? EntityWrapper< TushufenleiEntity> ew = new EntityWrapper< TushufenleiEntity>();
??????????? ew.allEq(MPUtil.allEQMapPre( tushufenlei, "tushufenlei"));
???????????? TushufenleiView tushufenleiView =? tushufenleiService.selectView(ew);
???????????? return R.ok("查詢圖書分類成功").put("data", tushufenleiView);
方法使用@RequestMapping注解將該方法映射到"/query"的URL路徑上。該方法接受一個參數(shù):tushufenlei,它是一個TushufenleiEntity對象,用于指定查詢條件。代碼中創(chuàng)建了一個EntityWrapper<TushufenleiEntity>對象ew,用于構(gòu)建查詢條件。使用ew.allEq(MPUtil.allEQMapPre(tushufenlei, "tushufenlei"))方法將tushufenlei對象中非空字段作為查詢條件進行全等匹配。MPUtil.allEQMapPre()是一個工具方法,用于將實體對象轉(zhuǎn)換為Map,其中鍵是字段名,值是字段值。調(diào)用selectView(ew)方法,使用ew作為查詢條件,從數(shù)據(jù)庫中查詢TushufenleiView對象。tushufenleiService是一個業(yè)務邏輯層的服務類,通過調(diào)用selectView(ew)方法查詢符合條件的TushufenleiView對象。最后,方法返回一個帶有"data"數(shù)據(jù)的響應,使用R.ok("查詢圖書分類成功").put("data", tushufenleiView)方法創(chuàng)建。其中,"data"是返回數(shù)據(jù)的鍵,tushufenleiView是查詢到的TushufenleiView對象。
5.5 圖書借閱管理
管理員可以進入到圖書借閱管理界面,當用戶從前端發(fā)起圖書借閱時,管理員可以在后臺進行審核,審核通過后,表示用戶申請成功,管理員可以對用戶的申請進行修改或者刪除,需要將相應的代碼傳遞給服務端,然后再用 SQL語言將其詳細的數(shù)據(jù)傳遞給用戶。
圖5.5 圖書借閱管理界面
部分代碼以及解釋如下:
??? /**
???? * 后端保存
???? */
??? @RequestMapping("/save")
??? public R save(@RequestBody TushujieyueEntity tushujieyue, HttpServletRequest request){
??? ???? tushujieyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
??? ???? //ValidatorUtils.validateEntity(tushujieyue);
??????? tushujieyueService.insert(tushujieyue);
??????? return R.ok();
??? }
方法使用@RequestMapping注解將該方法映射到"/save"的URL路徑上。該方法接受兩個參數(shù):tushujieyue和HttpServletRequest request。其中,tushujieyue參數(shù)使用@RequestBody注解表示該參數(shù)從請求體中獲取,并將其轉(zhuǎn)換為TushujieyueEntity對象。通過new Date().getTime()獲取當前時間的毫秒數(shù),然后加上new Double(Math.floor(Math.random()*1000)).longValue()產(chǎn)生的一個隨機數(shù),作為id字段的值。這里使用時間戳和隨機數(shù)的組合來生成一個唯一的id。代碼中注釋掉了ValidatorUtils.validateEntity(tushujieyue);這行代碼。根據(jù)注釋,這行代碼用于驗證TushujieyueEntity對象的有效性,但在當前代碼中被注釋掉了。tushujieyueService.insert(tushujieyue)表示通過tushujieyueService的insert方法將TushujieyueEntity對象保存到數(shù)據(jù)庫中。最后,方法返回一個帶有"ok"消息的響應,使用R.ok()方法創(chuàng)建。
5.6 圖書歸還管理
在圖書歸還管理界面,管理員可對圖書歸還信息進行管理操作,當管理員選中圖書歸還信息,點擊審核通過時,代表讀者圖書歸還成功。管理員還可進行刪除、修改等操作,當管理員需要刪除圖書歸還信息時,選中對應圖書歸還信息,按下“刪除”按鈕,如管理人員所刪除的數(shù)據(jù)與其它表格存在的數(shù)據(jù)有關聯(lián),必須刪除其它表格中的數(shù)據(jù)。
在圖書歸還的管理界面里面,可以查詢到圖書歸還的相關信息,在檢索輸入欄中,可以通過輸入圖書歸還的名字進行檢索,若所錄入的圖書歸還與數(shù)據(jù)庫中的圖書歸還不符,就無法獲得相應的信息。
圖5-6 圖書歸還管理界面
部分代碼以及解釋如下:
??? /**
???? * 后端保存
???? */
??? @RequestMapping("/save")
??? public R save(@RequestBody TushuguihaiEntity tushuguihai, HttpServletRequest request){
??? ????? tushuguihai.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
??? ????? //ValidatorUtils.validateEntity(tushuguihai);
??????? tushuguihaiService.insert(tushuguihai);
??????? return R.ok();
??? }
???
方法使用@RequestMapping注解將該方法映射到"/save"的URL路徑上。該方法接受兩個參數(shù):tushuguihai和HttpServletRequest request。其中,tushuguihai參數(shù)使用@RequestBody注解表示該參數(shù)從請求體中獲取,并將其轉(zhuǎn)換為TushuguihaiEntity對象。通過new Date().getTime()獲取當前時間的毫秒數(shù),然后加上new Double(Math.floor(Math.random()*1000)).longValue()產(chǎn)生的一個隨機數(shù),作為id字段的值。這里使用時間戳和隨機數(shù)的組合來生成一個唯一的id。代碼中注釋掉了ValidatorUtils.validateEntity(tushuguihai);這行代碼。根據(jù)注釋,這行代碼用于驗證TushuguihaiEntity對象的有效性,但在當前代碼中被注釋掉了。tushuguihaiService.insert(tushuguihai)表示通過tushuguihaiService的insert方法將TushuguihaiEntity對象保存到數(shù)據(jù)庫中。最后,方法返回一個帶有"ok"消息的響應,使用R.ok()方法創(chuàng)建。
5.7 圖書信息展示
用戶在前端進去首頁后,在導航欄點擊圖書信息,即可進去到圖書信息 頁面,在這個頁面上,用戶可以通過一個圖片表單將圖書相關信息顯示出來,可以通過頁面搜索框根據(jù)條件搜索相應書籍,點擊圖片后即可進入圖書信息詳細頁面。
圖5.7 圖書信息界面
部分代碼以及解釋如下:
HttpServletRequest request){
??????? EntityWrapper<TushuxinxiEntity> ew = new EntityWrapper<TushuxinxiEntity>();
??????????????? if(jieyuecishustart!=null) ew.ge("jieyuecishu", jieyuecishustart);
??????????????? if(jieyuecishuend!=null) ew.le("jieyuecishu", jieyuecishuend);
代碼片段中創(chuàng)建了一個EntityWrapper<TushuxinxiEntity>對象ew,用于構(gòu)建查詢條件。如果jieyuecishustart參數(shù)不為null,則調(diào)用ew.ge("jieyuecishu", jieyuecishustart)方法,表示添加一個大于等于條件,查詢jieyuecishu字段大于等于jieyuecishustart的記錄。如果jieyuecishuend參數(shù)不為null,則調(diào)用ew.le("jieyuecishu", jieyuecishuend)方法,表示添加一個小于等于條件,查詢jieyuecishu字段小于等于jieyuecishuend的記錄。
5.8 圖書信息詳細頁面展示
用戶點擊圖書圖片可進入圖書信息詳細頁面。當點擊圖書借閱后,會彈出圖書借閱申請信息,寫上對應信息即可發(fā)出借閱申請。
圖5.8 圖書信息詳細界面
部分代碼以及解釋如下:
??? /**
???? * 前端詳情
???? */
????? @IgnoreAuth
??? @RequestMapping("/detail/{id}")
??? public R detail(@PathVariable("id") Long id){
??????? TushuxinxiEntity tushuxinxi = tushuxinxiService.selectById(id);
??????? return R.ok().put("data", tushuxinxi);
??? };
方法使用@RequestMapping注解將該方法映射到"/detail/{id}"的URL路徑上。{id}是一個路徑參數(shù),表示要獲取詳情的圖書的ID。方法使用@PathVariable("id")注解將路徑參數(shù)id綁定到方法的參數(shù)上。方法使用@IgnoreAuth注解,表示此接口不需要進行身份驗證。這個注解是你的應用程序中定義的自定義注解。通過調(diào)用tushuxinxiService.selectById(id)方法,使用id作為參數(shù)從數(shù)據(jù)庫中查詢具有指定ID的TushuxinxiEntity對象。最后,方法返回一個帶有"data"數(shù)據(jù)的響應,使用R.ok().put("data", tushuxinxi)方法創(chuàng)建。其中,"data"是返回數(shù)據(jù)的鍵,tushuxinxi是查詢到的TushuxinxiEntity對象。
5.9 借閱圖書
用戶如需借閱圖書,在圖書信息詳細頁面,點擊借閱即可發(fā)起借閱圖書申請,核對和輸入相應信息后點擊提交即可發(fā)起借閱申請,當管理員審核通過后,表示借閱圖書成功。
圖5.9 借閱圖書界面
部分代碼以及解釋如下:
????? tushujieyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
??? ???? //ValidatorUtils.validateEntity(tushujieyue);
這段代碼的作用是為圖書借閱對象(tushujieyue)設置一個唯一的ID,并注釋掉了驗證代碼。下面是對代碼的解釋://ValidatorUtils.validateEntity(tushujieyue)用于驗證圖書借閱對象(tushujieyue)的有效性的代碼。通過注釋掉這行代碼,表示在當前代碼中不進行該對象的驗證。
- 系統(tǒng)測試
在軟件開發(fā)的過程中,對軟件的性能進行了檢測,在軟件開發(fā)的過程中,對軟件的性能進行了單元的檢測,及時地找出其中的問題。在完成了這個軟件的研發(fā)過程后,還要對這個軟件進行全方位的檢測,比如數(shù)據(jù)管理過程的準確性,以及對數(shù)據(jù)的修改等方面內(nèi)容。在測試的過程中,如果有什么問題發(fā)生,就必須進行相應的調(diào)整。
(1)版面上的錯誤與風格等內(nèi)容,網(wǎng)頁內(nèi)含有大量的字,這些方面不能出現(xiàn)錯誤。此外,在顯示時要留意字體之間的間隔和行距。前面的文字會出現(xiàn)混亂的代碼,在書寫前面的網(wǎng)頁時要小心字元的連貫性。
(2)瀏覽器兼容,這個版本的版本主要是利用火狐進行的,不同的瀏覽器核心不同,分析的文法也不同。所以在進行網(wǎng)頁設計的過程中要特別留意網(wǎng)頁的兼容性,采用CSS風格進行版式的設計。
(3)添加、刪除、修改、查找等特點,通常的系統(tǒng)都會使用模棱兩可的查詢方法,檢查查詢的速度有沒有對使用者的使用造成的不良后果的方面,或者對 SQL語句進行優(yōu)化以提高查詢效率。是否可以根據(jù)所需的關鍵詞來確定所要的記錄。當我們加入時,必須檢查輸入方塊是否必須填寫或限定。
6.1 系統(tǒng)測試的目的
功能測試的主要目的測試軟件是否符合要求。而在整個開發(fā)的整個流程中,一旦投資到了產(chǎn)品的服務器上,系統(tǒng)就會自動啟動,很有希望繼續(xù)增加統(tǒng)一并發(fā)訪問量。而同時,系統(tǒng)所承受的負載也會越來越大,一旦超過了系統(tǒng)的承受能力,系統(tǒng)就會出現(xiàn)故障,比如延遲,比如故障。尤其是對于那些正在進行促銷或者購買的網(wǎng)站來說,這樣的問題往往會致命。
6.2 測試過程
6.2.1 登錄測試
登錄測試用例是針對系統(tǒng)登錄功能的測試。該測試用例的主要目的是驗證用戶是否可以成功登錄。
表6.1 登錄用例表
模塊測試 |
測試用例 |
預期結(jié)果 |
實際結(jié)果 |
是否通過 |
登錄 |
賬號:admin 密碼:admin |
可以使用系統(tǒng)功能 |
可以使用系統(tǒng)功能 |
通過 |
登錄 |
賬號:null 密碼:admin |
不能夠使用系統(tǒng)功能,系統(tǒng)提示請輸入賬號 |
不能夠使用系統(tǒng)功能,系統(tǒng)提示請輸入賬號 |
通過 |
登錄 |
賬號:admin 密碼:null |
不能夠使用系統(tǒng)功能,系統(tǒng)提示請輸入密碼 |
不能夠使用系統(tǒng)功能,系統(tǒng)提示請輸入密碼 |
通過 |
登錄 |
賬號:null 密碼:null |
不能夠使用系統(tǒng)功能,系統(tǒng)提示請輸入賬號 |
不能夠使用系統(tǒng)功能,系統(tǒng)提示請輸入賬號 |
通過 |
6.2.2 讀者管理測試
讀者管理測試旨在驗證系統(tǒng)的讀者管理功能是否能夠按照預期的方式管理讀者賬戶。該測試包括添加、編輯、刪除和查詢賬戶操作,以確保系統(tǒng)能夠正確地處理這些操作并保持數(shù)據(jù)的一致性和完整性。
表6.2 讀者管理用例表
模塊測試 |
測試用例 |
預期結(jié)果 |
實際結(jié)果 |
是否通過 |
讀者管理 |
管理員想要添加讀者的信息輸入讀者必填的信息 |
如果輸入信息合法、與數(shù)據(jù)庫記錄相符的數(shù)據(jù),可以添加成功 |
如果輸入信息合法、與數(shù)據(jù)庫記錄相符的數(shù)據(jù),可以添加成功 |
通過 |
讀者管理 |
管理員想要添加讀者的信息輸入讀者必填的信息 |
輸入信息不合法、與數(shù)據(jù)庫記錄不相符的數(shù)據(jù) |
輸入信息不合法、與數(shù)據(jù)庫記錄不相符的數(shù)據(jù) |
不通過 |
讀者管理 |
管理員想要修改讀者的信息點擊修改按鈕 |
如果輸入的修改是不正當?shù)?,或者輸入的是與數(shù)據(jù)庫記錄相符的 |
如果輸入的修改是不正當?shù)模蛘咻斎氲氖桥c數(shù)據(jù)庫記錄相符的 |
不通過 |
讀者管理 |
管理員想要修改讀者的信息點擊修改按鈕 |
輸入的修改是正常字符的,或者輸入的是與數(shù)據(jù)庫記錄不符的 |
輸入的修改是正常字符的,或者輸入的是與數(shù)據(jù)庫記錄不符的 |
通過 |
讀者管理 |
管理員想要刪除讀者的信息點擊刪除按鈕 |
若要移除的讀者記錄與其他數(shù)據(jù)庫記錄相關 |
若要移除的讀者記錄與其他數(shù)據(jù)庫記錄相關 |
不通過 |
讀者管理 |
管理員想要刪除讀者的信息點擊刪除按鈕 |
移除的讀者記錄與其他數(shù)據(jù)庫記錄不相關 |
移除的讀者記錄與其他數(shù)據(jù)庫記錄不相關 |
通過 |
讀者管理 |
管理員想要搜索讀者的信息在輸入框中輸入讀者名稱搜索 |
如果輸入的讀者名字與數(shù)據(jù)庫紀錄相符合 |
如果輸入的讀者名字與數(shù)據(jù)庫紀錄相符合 |
通過 |
讀者管理 |
管理員想要搜索讀者的信息在輸入框中輸入讀者名稱搜索 |
如果輸入的讀者名字與數(shù)據(jù)庫紀錄不符。 |
輸入的讀者名字與數(shù)據(jù)庫紀錄不符 |
不通過 |
6.2.3 圖書信息管理測試
圖書信息管理測試包括添加、編輯、刪除、搜索圖書信息操作,以確保系統(tǒng)能夠正確地處理這些操作并保持圖書信息的一致性和完整性。
表6.3 圖書信息管理用例表
模塊測試 |
測試用例 |
預期結(jié)果 |
實際結(jié)果 |
是否通過 |
圖書信息管理 |
管理員想要添加圖書信息輸入圖書信息必填的信息 |
如果輸入信息合法、與數(shù)據(jù)庫記錄相符的數(shù)據(jù),可以添加成功 |
如果輸入信息合法、與數(shù)據(jù)庫記錄相符的數(shù)據(jù),可以添加成功 |
通過 |
圖書信息管理 |
管理員想要添加圖書信息輸入圖書信息必填的信息 |
輸入信息不合法、與數(shù)據(jù)庫記錄不相符的數(shù)據(jù) |
輸入信息不合法、與數(shù)據(jù)庫記錄不相符的數(shù)據(jù) |
不通過 |
圖書信息管理 |
管理員想要修改圖書信息點擊修改按鈕 |
如果輸入的修改是不正當?shù)?,或者輸入的是與數(shù)據(jù)庫記錄相符的 |
如果輸入的修改是不正當?shù)?,或者輸入的是與數(shù)據(jù)庫記錄相符的 |
不通過 |
圖書信息管理 |
管理員想要修改圖書信息點擊修改按鈕 |
輸入的修改是正常字符的,或者輸入的是與數(shù)據(jù)庫記錄不符的 |
輸入的修改是正常字符的,或者輸入的是與數(shù)據(jù)庫記錄不符的 |
通過 |
圖書信息管理 |
管理員想要刪除圖書信息點擊刪除按鈕 |
若要移除的圖書信息記錄與其他數(shù)據(jù)庫記錄相關 |
若要移除的圖書信息記錄與其他數(shù)據(jù)庫記錄相關 |
不通過 |
圖書信息管理 |
管理員想要刪除圖書信息點擊刪除按鈕 |
移除的圖書信息記錄與其他數(shù)據(jù)庫記錄不相關 |
移除的圖書信息記錄與其他數(shù)據(jù)庫記錄不相關 |
通過 |
圖書信息管理 |
管理員想要搜索圖書信息在輸入框中輸入圖書信息名稱搜索 |
如果輸入的圖書信息名字與數(shù)據(jù)庫紀錄相符合 |
如果輸入的圖書信息名字與數(shù)據(jù)庫紀錄相符合 |
通過 |
6.2.4 圖書借閱管理測試
圖書借閱管理測試包括審核、編輯、刪除、搜索圖書借閱操作,以確保系統(tǒng)能夠正確地處理這些操作并保持圖書借閱的一致性和完整性。
表6.4 圖書借閱管理用例表
模塊測試 |
測試用例 |
預期結(jié)果 |
實際結(jié)果 |
是否通過 |
圖書借閱管理 |
管理員想要審核圖書借閱信息點擊審核按鈕 |
審核通過代表借閱成功,審核不通過代表借閱失敗 |
審核通過代表借閱成功,審核不通過代表借閱失敗 |
通過 |
圖書借閱管理 |
管理員想要修改圖書借閱點擊修改按鈕 |
如果輸入的修改是不正當?shù)?,或者輸入的是與數(shù)據(jù)庫記錄相符的 |
如果輸入的修改是不正當?shù)?,或者輸入的是與數(shù)據(jù)庫記錄相符的 |
不通過 |
圖書借閱管理 |
管理員想要修改圖書借閱點擊修改按鈕 |
輸入的修改是正常字符的,或者輸入的是與數(shù)據(jù)庫記錄不符的 |
輸入的修改是正常字符的,或者輸入的是與數(shù)據(jù)庫記錄不符的 |
通過 |
圖書借閱管理 |
管理員想要刪除圖書借閱點擊刪除按鈕 |
若要移除的圖書借閱記錄與其他數(shù)據(jù)庫記錄相關 |
若要移除的圖書借閱記錄與其他數(shù)據(jù)庫記錄相關 |
不通過 |
圖書借閱管理 |
管理員想要刪除圖書借閱點擊刪除按鈕 |
移除的圖書借閱記錄與其他數(shù)據(jù)庫記錄不相關 |
移除的圖書借閱記錄與其他數(shù)據(jù)庫記錄不相關 |
通過 |
圖書借閱管理 |
管理員想要搜索圖書借閱在輸入框中輸入圖書借閱名稱搜索 |
如果輸入的圖書借閱名字與數(shù)據(jù)庫紀錄相符合 |
如果輸入的圖書借閱名字與數(shù)據(jù)庫紀錄相符合 |
通過 |
6.3 系統(tǒng)測試的總結(jié)
整個系統(tǒng)的設計過程包括需求分析,功能設計,系統(tǒng)實現(xiàn),以及軟件的測試。需求分析的目的是為了弄清楚這個軟件是否有很好的發(fā)展價值,以及它的可行性。功能的設計清楚地說明了該系統(tǒng)所具有的功能。本系統(tǒng)的實施目的是為了能夠使用一套能夠使用的圖書管理系統(tǒng)。而對于軟件的測試,就是對整個系統(tǒng)的檢測。如果能及早發(fā)現(xiàn)這個問題,那么修改的代價就會更低,破壞范圍也會更低。所以,在發(fā)布以前,要想發(fā)現(xiàn)問題,就得做好準備,做好準備。如果有一天,他已經(jīng)把錢投入到了這個項目中,那么問題就會變成一個巨大的隱患,從而對用戶造成更大的影響。
第七章 總結(jié)與展望
本課題的完成及對圖書管理系統(tǒng)代碼的編寫,不僅讓本人對項目的發(fā)展過程有了更深刻的了解,而且對自身的發(fā)展也有了一定的提高。因為自己的實力和時間限制,所以大部分的功能都沒有完全發(fā)揮出來,不過,最起碼的功能還在。在整個調(diào)整的進程中,意識到自身的實力有些不足,需要提高。在寫作和完成畢業(yè)設計時,我查閱了大量的相關數(shù)據(jù)和參考數(shù)據(jù),并借助老師和學生的共同努力,逐步完成了本文的寫作和系統(tǒng)的開發(fā)。在整個程序?qū)嵤┑臅r候,我也漸漸有了收獲:
(1)編程需要花費大量的時間,在整個編程的時候會遇到很多問題,從一開始遇到的問題,就需要查閱數(shù)據(jù)來解決,然后再用編譯器解決問題。我了解到堅持的價值,以及取得成果后的滿足。
(2)因為系統(tǒng)的前期工作還沒有充分完成,所以在整個開發(fā)的時候遇到了一些困難,需要修改代碼,這也讓我意識到,在設計系統(tǒng)的時候,一定要對自己的代碼進行足夠的分析,避免浪費大量的時間去修改代碼。
總之,如果將來要發(fā)展圖書管理系統(tǒng)的話,就應該提前制定好系統(tǒng)和需求分析,從中汲取經(jīng)驗。在現(xiàn)實中,還需要不斷積累專門的技能。
在整個開發(fā)的時候,通常都會使用開放源碼的系統(tǒng)結(jié)構(gòu)來增強自己的能力,同時也會讓我對自己所掌握的技術更加熟悉,從而提高自己的能力。這套圖書管理系統(tǒng)還有很多不足,需要改進一些功能的控制單元,期望能夠在今后的環(huán)境中改進圖書管理系統(tǒng)的管理。事實上,它包含了許多方面:
(1)對于圖書管理系統(tǒng)的發(fā)展,可以加入能夠為用戶提供必要的業(yè)務的大數(shù)據(jù)技術。
(2)系統(tǒng)的安全屬性相對來說比較簡單,目前的安全性能僅僅是保證了圖書管理系統(tǒng)的安全,以后還需要對安全進行更大的改進。
參考文獻
[1] 劉源昭,陳偉,曹俊杰,李鵬宇,李英杰,許一靖,孫浩銘.基于Springboot架構(gòu)的圖書管理系統(tǒng)[J] .山西電子技術,2022(03):61-63+76.
[2] 卿莉,劉鵬飛,彭光含.高校智慧圖書信息管理系統(tǒng)架構(gòu)設計[J] .大眾科技,2022,24(04):27-30.
[3] 王佳珺.基于Java的校園圖書管理系統(tǒng)程序設計[J] .電腦知識與技術,2022,18(08):60-61+64.
[4] 王玉慶.基于Java的圖書查詢系統(tǒng)設計與實現(xiàn)[J] .信息與電腦(理論版),2021,33(02):138-140.
[5] 胡素娟.基于Java圖書管理系統(tǒng)的設計與實現(xiàn)[J] .信息記錄材料,2021,22(12):161-163
[6] 司蒙,王慧,曹亮,孫一品.海事圖書管理系統(tǒng)的設計與實現(xiàn)[J] .珠江水運,2021(16):59-61.
[7] 葉淑然.圖書管理信息系統(tǒng)的設計與實現(xiàn)[J] .電子技術與軟件工程,2021(16):182-183.
[8]楊朔,張民,宋源清,劉豐羽,李海濱,周曉燕. 基于Springboot框架的物流管理系統(tǒng)的設計實現(xiàn)[J]. 電腦知識與技術,2019,15(29):83-85.
[9]吳倩,應捷,韓旭. 基于Springboot框架的高并發(fā)電子商務平臺設計與實現(xiàn)[J]. 電子商務,2019,(03):63-66.
[10]曾艷麗,李諾. 針對Springboot框架Web系統(tǒng)的相關思考[J]. 信息與電腦(理論版),2019,(03):116-117.
[11]王婧,王曉云,于波. 基于Springboot框架的分布式架構(gòu)二手書交易系統(tǒng)[J]. 電腦知識與技術,2019,15(03):86-88
[12]張海越,范曦.淺析Java語言中線程的生命周期及實現(xiàn)方式[J].大眾科技,2022,24(07):18-20+28.
[13] 蔣治學. JSP技術及其在動態(tài)網(wǎng)頁開發(fā)中的應用分析[J] . 浙江水利水電??茖W校學報, 2020, 032(002):75-77.
[14] Hsiao I H, Sosnovsky S, Brusilovsky P. Guiding students to the right questions: adaptive navigation support in an e-learning system for Java programming[J]. Journal of Computer Assisted Learning, 2019, 26(4):270-283.
[15] Goyal Shashank, Gupta Diwakar. The Online Reservation Problem[J]. Algorithms, 2020, 13( 10): 1-20.
[16] 譚偉鵬,王鑫,王艷輝.淺析HTML5與CSS3在網(wǎng)頁設計中的樣式設計[J] .卷宗,2019(27):336.
[17] PR Newswire.Global Academic E-Learning Market 2019-2023:HTML5 Emerging as the Main Programming Language for Content Authoring[J] .PR Newswire US,2019 (1):88-89.
[18] 鄭莉.Java語言程序設計[M] .2版.北京:清華大學出版社,2011:12.
[19] 趙鎰.計算機軟件JAVA編程特點與應用分析[J] .電子技術,2021,50(4):188 189.
[20] 黃杰Pomerantz J. The academic library today: Insights from the LITA National Forum[J]. Library Technology Reports, 2017, 53(8): 1-38.
[21] Chowdhury G. G., Chowdhury S. Introduction to modern information retrieval[M]. Facet Publishing, 2013.
[22] Evans G. E., Alire C. A. Management basics for information professionals (3rd ed.)[M]. American Library Association, 2013.
[23] Singh S. Library management: Principles, processes, and practices[M]. Ess Ess Publications, 2015.
[24]McAllister L., Cooper M. Library management in disruptive times: Skills and knowledge for an uncertain future[M]. Chandos Publishing, 2019.
[24]基于HTML5+CSS3.0+JQuery的網(wǎng)頁動態(tài)藝術效果的設計與實現(xiàn)[J] .中國寬帶,2021(6):123-124.
[25] Galimova E Y,Galimov T A. Intellectualization of agriculture information systems and actual software testing methods[J] . IOP Conference Series: Earth and Environmental Science,2022,1045(1).
[26] van der Putten Boas C.L.,Mendes C. I.,Talbot Brooke M.,de Korne Elenbaas Jolinda,Mamede Rafael,Vila Cerqueira Pedro,Coelho Luis Pedro,Gulvik Christopher A.,Katz Lee S.. Software testing in microbial bioinformatics: a call to action[J] . Microbial Genomics,2022,8(3).
[27]曾艷麗,李諾. 針對SSM框架Web系統(tǒng)的相關思考[J]. 信息與電腦(理論版),2019,(03):116-117.
[28]王婧,王曉云,于波. 基于SSM框架的分布式架構(gòu)二手書交易系統(tǒng)[J]. 電腦知識與技術,2019,15(03):86-88
[29]張海越,范曦.淺析Java語言中線程的生命周期及實現(xiàn)方式[J].大眾科技,2022,24(07):18-20+28.
[30]張淼,于仁師,陳龍猛.創(chuàng)新創(chuàng)業(yè)教育下的《Java語言程序設計》教學改革[J].辦公自動化,2022,27(13):43-45.
[31]劉寶銀.軟件測試技術的應用及其發(fā)展形勢分析[J].無線互聯(lián)科技,2022,19(12):38-40.
致謝
寫到這里,我的論文已經(jīng)進入了尾聲,也意味著我的大學生涯即將結(jié)束,這三年是我生命中最快樂的三年。視線所及之處,盡是回憶,心中所思,都已成為過去。在這里,我學到了很多知識,認識了許多有共同愛好的人,還有一些令人愉快的老師。四年的大學生活,歷歷在目。
我很感激我的國家,也很感謝我的努力,因為我在家鄉(xiāng)的幫助下,度過了三年的大學生活。
感謝我的家人,他們照顧了我二十一年的成長,他們在我的學業(yè)上無私的付出,他們的親情讓我感到溫暖,他們給予了我堅持不懈的勇氣,他們對我的養(yǎng)育之恩,沒有任何回報,我希望在未來的歲月里,能夠保護我的家人。
謝謝我的導師,從題目擬定,一直到寫出論文,都非常細心地予以指導,也正是在老師的幫助和監(jiān)督下,我的眼界和思維也得到了極大的提升。同時,我還要謝謝在我上大學時遇到的每一位的老師,他們的辛勤教導讓我終身受用。文章來源:http://www.zghlxwxcb.cn/news/detail-763259.html
謝謝我的朋友們,時光飛逝,過去的一切都還在眼前,不管是開心還是不開心,都是我的福氣,有你們的陪伴,有你們的寬容和關心。相逢即是緣分,始終要心懷感恩。一次遠行,重逢黃昏,但愿我們都能把夢想變成一匹駿馬,不辜負青春年華。文章來源地址http://www.zghlxwxcb.cn/news/detail-763259.html
到了這里,關于基于Java Web的圖書管理系統(tǒng)的設計與實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!