基于springboot圖書個性化推薦系統源碼數據庫
本論文主要論述了如何使用JAVA語言開發一個圖書個性化推薦系統,本系統將嚴格按照軟件開發流程進行各個階段的工作,采用B/S架構,面向對象編程思想進行項目開發。在引言中,作者將論述圖書個性化推薦系統的當前背景以及系統開發的目的,后續章節將嚴格按照軟件開發流程,對系統進行各個階段分析設計。
圖書個性化推薦系統的主要使用者分為管理員和學生,實現功能包括管理員:首頁、個人中心、學生管理、圖書分類管理、圖書信息管理、圖書預約管理、退換圖書管理、管理員管理、留言板管理、系統管理,學生:首頁、個人中心、圖書預約管理、退換圖書管理、我的收藏管理,前臺首頁;首頁、圖書信息、好書推薦、留言反饋、個人中心、后臺管理等功能。由于本系統的功能模塊設計比較全面,所以使得整個圖書個性化推薦系統信息管理的過程得以實現。
本系統的使用可以實現本圖書個性化推薦系統管理的信息化,可以方便管理員進行更加方便快捷的管理,可以提高管理人員的工作效率。
1?緒論
1.1研究背景
?隨著網絡不斷的普及發展,圖書個性化推薦系統依靠網絡技術的支持得到了快速的發展,首先要從學生的實際需求出發,通過了解學生的需求開發出具有針對性的首頁、圖書信息、好書推薦、留言反饋、個人中心、后臺管理功能,利用目前網絡給學生帶來的方便快捷這一特點對系統進行調整,設計的系統讓學生的使用起來更加方便,本系統的主要目的就是給學生帶來快捷與高效、安全,學生只要在家中就可以進行操作。同時隨著電子商務的發展網上圖書個性化推薦系統已經受到廣大學生的關注。
互聯網發展至今,已經解決了很多我們解決不了的難題,使得我們工作更加便捷,提高了我們的工作效率。目前各行各業都在運用網絡信息管理程序,不同的學生也都接觸到信息管理,特別是在各大網絡行業廣泛的應運起來。通過對當前網絡環境發展的分析與總結,開發圖書個性化推薦系統可以改變以往的圖書個性化推薦系統方式,改變傳統線下圖書個性化推薦系統的狀態,由于學生的不斷增多,使用傳統的線下圖書個性化推薦系統模式已經遠遠不能滿足于學生需求了,而且越來越多的學校也在開通線上進行圖書個性化推薦系統,所以開發一個圖書個性化推薦系統可以解決學生不利于線下圖書個性化推薦系統的問題,同時管理員可以利用網絡對圖書信息進行管理,這樣才能提高工作效率,保證系統安全正常的運行。
1.2研究現狀
在國外他們的信息技術的發展是我國的許多倍,從1946年誕生在美國的世界上第一臺計算機開始,國外的信息技術就一直在飛速地發展,一些計算機應用軟件也紛紛出現,軟件技術也一直在不斷完善和更新。軟件行業早已遍布各個地方。
在國內,我國信息技術發展起步比較晚,后期慢慢的不斷地進行優化和改革,才讓我們的信息技術上升到新的階段。在現在軟件開發的技術經過大量研究和生活實踐基本能夠達到獨立開發系統應用的水平,生活中的各個行業也把軟件操作替換成傳統的記錄模式。軟件行業正是現在比較熱門的行業。
社會主義進入新時代,經濟實力越來越強。我們也變得越來越忙碌、對生活的要求也變得更加嚴格,對快速和方便的服務的需求也在逐漸增加,所以網上圖書個性化推薦系統的開發給學生帶來了足夠的便利,學生通過系統來滿足生活中的需求,因此,由于信息的增加,信息處理系統也隨之增加,通過網絡來滿足現代學生需求。此次開發設計主要是實現圖書個性化推薦系統 ,結合java技術以及MYSQL數據庫進行設計,彌補目前在線圖書個性化推薦系統中的不足,來開發出一款即方便又實用的圖書個性化推薦系統 ,并且設計的程序具有界面整潔、功能強大等特性,從全局來說,圖書個性化推薦系統的設計解決了信息零散,該系統實現,可以投入到真實環境中,這樣不僅能解決以上提及的問題,讓信息管理更準則。
1.3研究內容
該圖書個性化推薦系統的開發和設計根據學生的實際情況出發,對系統的需求進行了詳細的分析,然后進行系統的整體設計,最后通過測試使得系統設計的更加完整,可以實現系統中所有的功能,在開始編寫論文之前親自到圖書館借閱Spring?Boot書籍,MYSQL數據庫書籍等編程書籍,然后針對開發的圖書個性化推薦系統 ,去網上查找了很多別人做好的系統,參照他們的設計結果,來對自己的系統進行更加詳細的系統的設計,將系統中所有的功能結果一一列舉出來,然后進行需求分析,最后對所有的功能模塊進行編碼,最后完成系統的整體測試,實現系統的正常運行。
這次編寫的論文包含了6個部分的內容,具體內容如下:
第一部分緒論:文章主要從課題背景以及研究現狀綜合闡述了開發此系統的必要性。
第二部分相關技術:系統開發用到的各種技術都大致做出了簡介。
第三部分系統分析:對系統的可行性分析以及對所有功能需求進行詳細的分析,來查看該系統是否具有開發的可能。
第四部分系統設計:功能模塊設計和數據庫設計這兩部分內容都有專門的表格和圖片表示。
第五部分系統實現:進行系統主要功能模塊的界面展示。
2 系統關鍵技術
2.1 Spring?Boot框架
Spring?Boot是Pivotal團隊的一個新框架,旨在簡化新Spring應用程序的初始設置和開發。該框架使用特定的配置方法,無需開發人員定義樣板配置。通過這種方式,Spring?Boot旨在成為蓬勃發展的快速應用程序開發領域的領導者。
Spring?Boot特點:
1、創建一個單獨的Spring應用程序;
2、嵌入式Tomcat,無需部署WAR文件;
3、簡化Maven配置;
4、自動配置Spring;
5、提供生產就緒功能,如指標,健康檢查和外部配置;
6、絕對沒有代碼生成和XML的配置要求;
??安裝步驟:
???最基本的是,Spring?Boot是一個可以被任何項目的構建系統使用的庫集合。?為簡單起見,該框架還提供了一個命令行界面,可用于運行和測試Boot應用程序。?可以從Spring存儲庫手動下載和安裝框架的已發布版本,包括集成的CLI(命令行界面)。?更簡單的方法是使用Groovy?enVironment?Manager(GVM),它負責處理Boot版本的安裝和管理。?可以從GVM命令行GVM?install?springboot安裝Boot及其CLI。?在OS?X上安裝Boot時可以使用Homebrew包管理器。要完成安裝,首先使用brew?tap?pivotal?/?tap切換到pivotal存儲庫,然后執行brew?install?springboot命令。
2.2 JAVA技術
JAVA語言是目前軟件市場上應用最廣泛的語言開發程序。可以在多種平臺上運用的,兼容性比較強,適應市面上大多數操作系統,不會出現亂碼的現像,其擴展性和維護性都更好,具有分析問題和解決問題的能力,是面向過程的程序設計方便我們編寫的代碼更強壯。
JAVA相對其它語言來說,比較簡單,編譯起來更方便一些,安全可靠性高。不完全統計,現在全世界大約有2000多萬人在使用它,JAVA既可以鑲嵌使用又可以獨力的使用。JAVA大致可以分成兩個部分,一種部分是JAVA負責的編譯,另一種是JAVA負責的運行。JAVA和C++語言很相像,但JAVA在編程時是一種以對象為導向的方式來進行編譯的,使得編出來的軟件可以單機使用,也可以在互聯網上使用,檢查出錯更為方便。JAVA分布式、體系結構中立的特點也使得其存儲更快,編議更簡單。面向對象包括四個特點,一是封裝,就是說在定義類的時候可以實現一定的功能和屬性。二是抽象,屬于類的一種,可以把一個具有共同屬性的類封裝在一個抽象里,便于簡單編議。三是繼承,顧名思義就是帶有前者的特性。還有一個就是多態的特點,可以多種一起運用,表現了它可擴展性好。
2.3 MYSQL數據庫
網站的開發必須配套相應數據庫,數據庫具有一定的組織結構,能夠存放和管理數據信息,在以前數據庫的功能僅僅是數據保存和管理操作,但是時代的變遷和發展,現在的數據庫演變成了數據處理的方式,數據庫從最開始的簡單存放數據表格信息到現在的能夠存放成千上萬數據的大型數據庫,期間還是經歷了許多的改革。
本次開發的圖書個性化推薦系統 使用的數據庫是MYSQL數據庫,該數據庫運行速度快,安全性能也很高,而且對使用的平臺沒有任何的限制,所以被廣泛應運到系統的開發中。MySQL是一個開源和多線程的關系管理數據庫系統,MySQL是開放源代碼的數據庫,具有跨平臺性,雖然功能未必強大,導致很多人都了解這個數據庫的基本應用,在數據庫中,總共建立了10幾個表,這里面每個表都是相對應的,都各自有各自的聯系,數據庫意義重大,如果沒有數據庫的鏈接,就沒辦法運行程序,這顯然可以看見數據庫與程序的重要性,是緊密相連接的。
2.4?B/S結構
B/S(瀏覽器/服務器)結構是目前主流的網絡化的結構模式,它能夠把系統核心功能集中在服務器上面,可以幫助系統開發人員簡化操作,便于維護和使用。只需要學生在學生端安裝360瀏覽器、谷歌瀏覽器、QQ瀏覽器等當前大眾瀏覽器,在電腦里面安裝sqlserver、mysql數據庫等數據庫。安裝好的瀏覽器與服務器端的數據庫進行信息數據的交互。很多專門軟件能夠做到的事情,采用B/S結構模式也能實現,它能夠結合Web瀏覽器技術,ActiveX技術以及多種腳本語言等技術。幫助程序開發者節約了不少開發成本。目前B/S結構成為程序開發主流結構,它最好的地方就是沒有地點限制還不用專門安裝軟件,筆記本或者電腦能夠上網就能訪問系統。系統使用B/S進行開發在后期系統維護上面就會很省事,不用什么問題都在服務器上面操作,簡單的學生端處理就解決部分問題,開發出來的程序跟學生交互性上面也會增強,還可以實時刷新瀏覽器進行程序局部的數據信息更新。
3 系統分析
3.1 可行性分析
在系統開發之初要進行系統可行分析,這樣做的目的就是使用最小成本解決最大問題,一旦程序開發滿足學生需要,帶來的好處也是很多的。下面我們將從技術上、操作上、經濟上等方面來考慮這個系統到底值不值得開發。
3.1.1 技術可行性
本圖書個性化推薦系統采用Spring?Boot框架、JAVA編程語言和MYSQL數據庫進行開發設計,作為計算機專業學生,在學校期間就接觸到許多關于編程方面的知識,當然也包括各種編程軟件,對他們的了解度也比較熟悉,所以技術開發上面還是有一定把握。
3.1.2經濟可行性
我在設計該系統的時候主要是從節約成本出發,然后進行具體的系統的設計,在系統的設計過程中由于采用的所有工具以及技術支持全部都是免費的,因此不需要有任何的成本就可以進行該系統的設計。所用到的所有資源都是免費的,只要有網絡就可以進行下載使用,不需要支付相應的費用,因此該項目在經濟方面是完全可以實行的。
3.1.3操作可行性
本人自己就是學生,程序開發經驗不足,在界面設計上面不會設計太復雜,要講究簡單好看,操作上要方便,不能讓學生覺得不流暢。學生一旦進入操作界面,界面上就會有相應提示,跟著操作提示就可以找到對應的功能操作模塊,對于學生來說免培訓就能使用。
從上面幾個部分的可行性分析得出,這次開發的圖書個性化推薦系統在開發上面沒有什么大問題,值得開發。
3.2 系統性能分析
(1)系統響應效率:頁面響應時問應該在3秒以內,最長不能超過4秒,并支持至少10000人同時在線所有系統。
(2)界面簡潔清晰:系統界面要求簡單明了,容易操作,符合學生操作習慣。
(3)儲存性高:因為圖書個性化推薦系統中有很多的信息需要存儲,因此對于系統的存儲量有很大的要求,需要有一個強大的數據庫的支持才能確保所有的信息都能安全穩定的進行存儲。
(4)易學性:該系統在操作上必須簡單好上手,沒有很多復雜的操作,只需要簡單的進行學習就能操作該系統。
(5)穩定性需求:開發的圖書個性化推薦系統 要求運行穩定,運行過程中無界面不清楚、字體模糊等現象。
3.3 系統功能分析
本圖書個性化推薦系統主要包括二大功能模塊,即學生功能模塊和管理員功能模塊。
(1)管理員模塊:系統中的核心用戶是管理員,管理員登錄后,通過管理員功能來管理后臺系統。主要功能有:首頁、個人中心、學生管理、圖書分類管理、圖書信息管理、圖書預約管理、退換圖書管理、管理員管理、留言板管理、系統管理等功能。
(2)學生:首頁、個人中心、圖書預約管理、退換圖書管理、我的收藏管理等功能。
(3)前臺首頁:首頁、圖書信息、好書推薦、留言反饋、個人中心、后臺管理等功能。
3.4系統流程分析
3.4.1登錄流程
登錄模塊主要滿足管理員以及學生的權限登錄。
3.4.2注冊流程
未有賬號的學生可進入注冊界面進行注冊操作。
3.4.3添加信息流程
學生在添加信息時,信息編號自動生成,系統會對添加的信息進行驗證,驗證通過則添加至數據庫,添加信息成功,反之添加失敗。
3.4.4刪除信息流程
學生可選擇要刪除的信息進行信息刪除操作,在刪除信息時系統提示是否確定刪除信息,是則刪除信息成功,系統數據庫將信息進行刪除。
4 系統設計
4.1系統概要設計
本圖書個性化推薦系統選擇B/S結構(Browser/Server,瀏覽器/服務器結構)和基于Web服務兩種模式。適合在互聯網上進行操作,只要學生能連網,任何時間、任何地點都可以進行系統的操作使用。
4.2系統結構設計
整個系統是由多個功能模塊組合而成的,要將所有的功能模塊都一一列舉出來,然后進行逐個的功能設計,使得每一個模塊都有相對應的功能設計,然后進行系統整體的設計。
4.3系統順序圖設計
4.3.1登錄模塊順序圖
登錄模塊主要滿足了管理員以及學生的權限登錄。
4.3.2添加信息模塊順序圖
管理員以及學生登錄后均可進行添加信息操作。
4.4數據庫設計
一個好的數據庫可以關系到程序開發的優劣,數據庫設計離不開表結構的設計,還有表與表之間的聯系,以及系統開發需要設計的數據表內容等信息。在進行數據庫設計期間,要結合實際情況來對數據庫進行針對性的開發設計。
4.4.1數據庫E-R圖設計
本圖書個性化推薦系統采用的是MYSQL數據庫,數據存儲快,因為圖書個性化推薦系統 ,主要的就是對信息的管理,信息內容比較多,這就需要好好的設計一個好的數據庫,分類要清楚,不能添加信息的時候,造成信息太過混亂,設計好的數據庫首先就需要先把各個實體之間的關系表達明確。
4.4.2數據庫表設計
將數據庫概念設計的E-R圖轉換為關系數據庫。在關系數據庫中,數據關系由數據表組成,但是表的結構表現在表的字段上。
表1:tuihuantushu表
列名 | 數據類型 | 長度 | 約束 |
id | bigint | 200 | NOT NULL |
addtime | varchar | 200 | NULL DEFAULT |
tushubianhao | tinyint | 200 | NULL DEFAULT |
tushumingcheng | varchar | 200 | NOT NULL |
zuozhe | varchar | 200 | NOT NULL |
chubanshe | varchar | 200 | NOT NULL |
shuliang | varchar | 200 | NOT NULL |
xuehao | varchar | 200 | NOT NULL |
tuihuanleixing | varchar | 200 | NOT NULL |
tuihuanyuanyin | varchar | 200 | NOT NULL |
riqi | varchar | 200 | NOT NULL |
sfsh | varchar | 200 | NOT NULL |
shhf | varchar | 200 | NOT NULL |
表2:tushuxinxi表
列名 | 數據類型 | 長度 | 約束 |
id | int | 200 | NOT NULL |
addtime | varchar | 200 | NOT NULL |
tushubianhao | varchar | 200 | NOT NULL |
tushumingcheng | varchar | 200 | NOT NULL |
tushuleibie | varchar | 200 | NOT NULL |
tupian | varchar | 200 | NOT NULL |
zuozhe | varchar | 200 | NOT NULL |
chubanshe | varchar | 200 | NOT NULL |
shuliang | varchar | 200 | NOT NULL |
xiangqing | varchar | 200 | NOT NULL |
表3:tushuyuyue表
列名 | 數據類型 | 長度 | 約束 |
id | varchar | 200 | NOT NULL |
addtime | varchar | 200 | NOT NULL |
tushubianhao | varchar | 200 | NOT NULL |
tushumingcheng | varchar | 200 | NOT NULL |
tushuleibie | varchar | 200 | NOT NULL |
zuozhe | varchar | 200 | NOT NULL |
chubanshe | varchar | 200 | NOT NULL |
shuliang | varchar | 200 | NOT NULL |
xuehao | varchar | 200 | NOT NULL |
xueshengxingming | varchar | 200 | NOT NULL |
lianxidianhua | varchar | 200 | NOT NULL |
shenqingriqi | varchar | 200 | NOT NULL |
sfsh | varchar | 200 | NOT NULL |
shhf | varchar | 200 | NOT NULL |
表4:xuesheng表
列名 | 數據類型 | 長度 | 約束 |
id | varchar | 200 | NOT NULL |
addtime | varchar | 200 | NOT NULL |
xuehao | varchar | 200 | NOT NULL |
mima | varchar | 200 | NOT NULL |
xueshengxingming | varchar | 200 | NOT NULL |
xingbie | varchar | 200 | NOT NULL |
chushengriqi | varchar | 200 | NOT NULL |
lianxidianhua | varchar | 200 | NOT NULL |
banji | varchar | 200 | NOT NULL |
表5:tushufenlei表
列名 | 數據類型 | 長度 | 約束 |
id | varchar | 200 | NOT NULL |
addtime | varchar | 200 | NOT NULL |
tushuleibie | varchar | 200 | NOT NULL |