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

下載本文檔

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

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1引言1

1.1項(xiàng)目開發(fā)背景1

1.2開發(fā)技術(shù)簡介1

1.2.1Layui簡介2

1.2.2jQuery簡介2

1.3開發(fā)工具簡介2

1.4項(xiàng)目開發(fā)技術(shù)路線3

2需求分析3

2.1功能需求描述3

2.2非功能需求描述3

2.3需求用例建模4

2.3.1圖書管理的用例4

2.3.2借閱管理的用例5

2.3.3讀者管理的用例6

2.3.4類型管理的用例7

3系統(tǒng)概要設(shè)計(jì)8

3.1系統(tǒng)設(shè)計(jì)原則8

3.2系統(tǒng)框架設(shè)計(jì)8

3.3系統(tǒng)功能設(shè)計(jì)9

3.3.1圖書管理功能設(shè)計(jì)10

3.3.2借閱管理功能設(shè)計(jì)11

3.3.3讀者管理功能設(shè)計(jì)11

3.3.4類型管理功能設(shè)計(jì)12

3.4數(shù)據(jù)庫設(shè)計(jì)13

3.4.1設(shè)計(jì)原則13

3.4.2概念設(shè)計(jì)14

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.4.3邏輯設(shè)計(jì)14

3.4.4數(shù)據(jù)字典14

4系統(tǒng)詳細(xì)設(shè)計(jì)16

4.1圖書管理功能模塊設(shè)計(jì)16

4.1.1圖書管理功能模塊說明16

4.1.2圖書功能模塊詳細(xì)設(shè)計(jì)16

4.2借閱管理功能模塊設(shè)計(jì)17

4.2.1借閱管理功能模塊說明17

4.2.2借閱管理功能模塊詳細(xì)設(shè)計(jì)17

4.34.3讀者管理功能模塊設(shè)計(jì)18

4.3.1讀者管理功能模塊說明18

4.3.2讀者管理功能模塊詳細(xì)設(shè)計(jì)19

4.44.4類型管理功能模塊設(shè)計(jì)20

4.4.1類型管理功能模塊說明20

4.4.2類型管理功能模塊詳細(xì)設(shè)計(jì)20

5系統(tǒng)實(shí)現(xiàn)21

5.1圖書管理模塊實(shí)現(xiàn)21

5.2借閱管理模塊實(shí)現(xiàn)28

5.3讀者管理模塊實(shí)現(xiàn)36

5.4類型管理模塊實(shí)現(xiàn)42

6系統(tǒng)測試46

6.1圖書管理功能測試46

6.2借閱管理功能測試47

6.3讀者管理功能測試48

6.4類型管理功能測試48

7設(shè)計(jì)小結(jié)49

參考資料50

III

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于springboot的高校圖書管理系統(tǒng)的設(shè)

計(jì)與實(shí)現(xiàn)

1引言

校園圖書館自動(dòng)化建設(shè)是國家教育信息化建設(shè)的一個(gè)重要組成部分。隨著

圖書館硬件設(shè)施的完善,對(duì)圖書館的管理水平和標(biāo)準(zhǔn)也越來越高。傳統(tǒng)手工管

理對(duì)圖書館管理員而言,工作繁瑣而艱巨,同時(shí)對(duì)讀者借閱在時(shí)間和空間上也

帶來諸多不便,逐漸出現(xiàn)信息資源流通效率低、服務(wù)不夠細(xì)致嚴(yán)密等問題。如

何才能更有效的發(fā)揮校園圖書館這個(gè)信息交換中心的應(yīng)用效率。圖書館管理系

統(tǒng)打破了傳統(tǒng)的圖書管理模式,以系統(tǒng)性、實(shí)用性為原則,最大限度提高圖書

館管理各個(gè)環(huán)節(jié)的自動(dòng)化服務(wù)為目標(biāo),建立起了一套系統(tǒng)高效的數(shù)字自動(dòng)化管

理服務(wù)流程,極大的減輕了圖書管理的工作量,有效的提高了圖書館服務(wù)質(zhì)量

和效率。分層組件技術(shù)的應(yīng)用,使每個(gè)功能和業(yè)務(wù)模塊實(shí)現(xiàn)網(wǎng)絡(luò)集成化的分配

管理,順應(yīng)信息時(shí)代的發(fā)展,能夠滿足較大型用戶的需要。

1.1項(xiàng)目開發(fā)背景

隨著網(wǎng)絡(luò)時(shí)代的到來,電子信息化的飛速發(fā)展,圖書館作為一種信息資源

的聚集地,圖書種類的繁多,用戶借閱的繁瑣,包含很多的信息數(shù)據(jù)的管理,

以及信息數(shù)據(jù)的交互。那么如果有一套具體的完善的圖書管理系統(tǒng)就顯得尤為

重要,圖書館如果采用人工來管理書籍和借閱管理,由于資料繁多,手工處理

的方式不僅工作量大,管理效率低下,也很容易因?yàn)槠诙a(chǎn)生出錯(cuò),更不方

便讀者對(duì)圖書資料的查閱。為了提高圖書管理的效率,本項(xiàng)目針對(duì)圖書的管理,

設(shè)計(jì)了一個(gè)面向圖書的管理系統(tǒng)。

1.2開發(fā)技術(shù)簡介

開發(fā)工具:IDEA

JDK版本:JDK1.8

數(shù)據(jù)庫:MySQL5.7

服務(wù)器:Tomcat8.0

前端技術(shù):Layui+jQuery

后端技術(shù):Springboot

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

系統(tǒng)支持:Windows

1.2.1Layui簡介

layui是一款采用自身模塊規(guī)范編寫的前端UI框架,遵循原生的HTML/CSS

/JS的書寫與組織形式、門檻極低、拿來即用。

由國人開發(fā),16年出廠的框架,其提供了很多好看的、方便的樣式、并且

基本拿來就能使用,和Bootstarp有些相似,該框架有個(gè)極大的好處就是定義

了很多前后端交互的樣式接口,如分頁表格,只需在前端配置好接口,后端按

照定義好的接口規(guī)則返回?cái)?shù)據(jù),即可完成頁面的展示,極大的減少了后端人員

的開發(fā)成本。

1.2.2jQuery簡介

jQuery是一個(gè)快速、簡潔的JavaScript庫,其設(shè)計(jì)的宗旨是“write

Less,DoMore”,即倡導(dǎo)寫更少的代碼,做更多的事情。封裝了JavaScript

常用的功能代碼,優(yōu)化了DOM操作、事件處理、動(dòng)畫設(shè)計(jì)和Ajax交互。jQuery

出現(xiàn)的目的是加快前端人員的開發(fā)速度,我們可以非常方便的調(diào)用和使用它,

從而提高開發(fā)效率。

1.3開發(fā)工具簡介

工具的使用:采用IDEA+tomcat+mysql

IDEA集成的插件足夠多,基本可以實(shí)現(xiàn)圖書管理系統(tǒng)方面的所有開發(fā)功能

tomcat作為小型服務(wù)期有著很多的優(yōu)點(diǎn),安裝和部署都方便,第三是

TOMCAT適合做一些中小型的項(xiàng)目

mysql其優(yōu)點(diǎn)有:綜合統(tǒng)一,高度非過程化,面向集合的操作方式,以一種

語法結(jié)構(gòu)提供多種使用方式,語言簡潔,易學(xué)易用。

MySQL的優(yōu)勢:

(1)安全性和高可用性:用c開發(fā),確定了其高性能的特性。

(2)體積小、速度快、總體擁有成本低,開源。

(3)支持大型的數(shù)據(jù)庫,可以方便地支持上千萬條記錄的數(shù)據(jù)庫。作為一

個(gè)開放源代碼的數(shù)據(jù)庫,可以針對(duì)不同的應(yīng)用進(jìn)行相應(yīng)的修改。

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

1.4項(xiàng)目開發(fā)技術(shù)路線

MVC全名是ModelViewController,是模型(model)-視圖(view)-控制器

(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示

分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制

界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來用于

映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。

Model(模型)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。通常模型對(duì)

象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。

View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)

創(chuàng)建的。

Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。通??刂破髫?fù)責(zé)

從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。

2需求分析

2.1功能需求描述

圖書管理系統(tǒng)是用springboot+Layui實(shí)現(xiàn)的一個(gè)完全基于瀏覽器的圖書

管理系統(tǒng),本系統(tǒng)初步設(shè)置了兩種角色:讀者和管理員。

圖書管理系統(tǒng)有以下功能:

管理員:圖書管理、讀者管理、借閱管理、圖書類型管理、其他管理。

讀者:借還圖書、修改密碼、查詢圖書、我的借閱。

2.2非功能需求描述

實(shí)現(xiàn)開展和用戶進(jìn)行溝通,了解圖書管理的系統(tǒng)的問題,本系統(tǒng)的非功能

性需求有以下幾個(gè)方面:

(1)易擴(kuò)展性:本系統(tǒng)應(yīng)該有較強(qiáng)的擴(kuò)展性,對(duì)后續(xù)開發(fā)功能擴(kuò)展。

(2)安全性:嚴(yán)格權(quán)限訪問控制,用戶在經(jīng)過身份認(rèn)證后,只能訪問其權(quán)

限范圍內(nèi)的數(shù)據(jù),只能進(jìn)行其權(quán)限范圍內(nèi)的操作。

(3)可靠性:對(duì)輸入有提示,數(shù)據(jù)有檢查,防止數(shù)據(jù)異常。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

2.3需求用例建模

通過對(duì)功能需求的分析,創(chuàng)建以下總體用例模型,如圖2-1所示。

圖2-1圖書管理系統(tǒng)的總體用例模型

讀者登錄系統(tǒng)可以查詢想要的圖書,也可以借還圖書,修改個(gè)人信息,查

詢借閱信息,管理員可以錄入圖書,可以對(duì)圖書信息、讀者信息、借閱信息、

類別信息管理。

2.3.1圖書管理的用例

面向?qū)ο蟮男枨蠓治鲭A段通過用例圖和活動(dòng)圖進(jìn)行了梳理分析。圖書管理

具體的用例描述如圖2-2所示。

圖2-2圖書管理用例圖

通過對(duì)圖2-2用例圖進(jìn)一步的細(xì)化分析,得到每個(gè)用例的描述表。圖書管

理模塊用例描述如表2-1所示,可以進(jìn)行對(duì)圖書信息操作。

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

表2-1圖書管理模塊用例描述

項(xiàng)目描述

用例名稱圖書信息

用例標(biāo)識(shí)號(hào)01

參與者管理員

簡要說明參與者可以對(duì)圖書信息操作

前置條件參與者已經(jīng)登錄并打開系統(tǒng)的圖書管理頁面

1.選擇要執(zhí)行的操作(添加、刪除、編輯)

2.選擇要操作的行

基本事件流

3.返回操作結(jié)果并顯示

4.用例終止

在按“刪除”按鈕之前,參與者可以隨按“取消”或“關(guān)

其他事件流

閉”按鈕。

異常事件流提示錯(cuò)誤信息,參與人確認(rèn)

后置條件裝載相應(yīng)的數(shù)據(jù)

2.3.2借閱管理的用例

面向?qū)ο蟮男枨蠓治鲭A段通過用例圖和活動(dòng)圖進(jìn)行了梳理分析。借閱管理

具體的用例描述如圖2-3所示。

圖2-3借閱管理用例圖

通過對(duì)圖2-3用例圖進(jìn)一步的細(xì)化分析,得到每個(gè)用例的描述表。借閱管

理模塊用例描述如表2-2所示,可以進(jìn)行對(duì)借閱信息操作。

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

表2-2借閱管理模塊用例描述

項(xiàng)目描述

用例名稱借閱信息

用例標(biāo)識(shí)號(hào)02

參與者管理員

簡要說明參與者可以對(duì)借閱信息操作

前置條件參與者已經(jīng)登錄并打開系統(tǒng)的借閱管理頁面

1.選擇要執(zhí)行的操作(查詢、刪除)

2.選擇要操作的行

基本事件流

3.返回操作結(jié)果并顯示

4.用例終止

在按“刪除”按鈕之前,參與者可以隨按“取消”或“關(guān)

其他事件流

閉”按鈕。

異常事件流提示錯(cuò)誤信息,參與人確認(rèn)

后置條件裝載相應(yīng)的數(shù)據(jù)

2.3.3讀者管理的用例

面向?qū)ο蟮男枨蠓治鲭A段通過用例圖和活動(dòng)圖進(jìn)行了梳理分析。讀者管理

具體的用例描述如圖2-4所示。

圖2-4讀者管理用例圖

通過對(duì)圖2-4用例圖進(jìn)一步的細(xì)化分析,得到每個(gè)用例的描述表。讀者管

理模塊用例描述如表2-3所示,可以進(jìn)行對(duì)讀者信息操作。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

表2-3讀者管理模塊用例描述

項(xiàng)目描述

用例名稱讀者信息

用例標(biāo)識(shí)號(hào)03

參與者管理員

簡要說明參與者可以對(duì)讀者信息操作

前置條件參與者已經(jīng)登錄并打開系統(tǒng)的讀者管理頁面

1.選擇要執(zhí)行的操作(添加、修改、查詢、刪除)

2.選擇要操作的行

基本事件流

3.返回操作結(jié)果并顯示

4.用例終止

在按“刪除”按鈕之前,參與者可以隨按“取消”或“關(guān)

其他事件流

閉”按鈕。

異常事件流提示錯(cuò)誤信息,參與人確認(rèn)

后置條件裝載相應(yīng)的數(shù)據(jù)

2.3.4類型管理的用例

面向?qū)ο蟮男枨蠓治鲭A段通過用例圖和活動(dòng)圖進(jìn)行了梳理分析。類型管理

具體的用例描述如圖2-5所示。

圖2-5類型管理用例圖

通過對(duì)圖2-5用例圖進(jìn)一步的細(xì)化分析,得到每個(gè)用例的描述表。類型管

理模塊用例描述如表2-4所示,可以進(jìn)行對(duì)類型信息操作。

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

表2-4類型管理模塊用例描述

項(xiàng)目描述

用例名稱圖書類型信息

用例標(biāo)識(shí)號(hào)04

參與者管理員

簡要說明參與者可以對(duì)圖書類型信息操作

前置條件參與者已經(jīng)登錄并打開系統(tǒng)的類型管理頁面

1.選擇要執(zhí)行的操作(添加、修改、查詢、刪除)

2.選擇要操作的行

基本事件流

3.返回操作結(jié)果并顯示

4.用例終止

在按“刪除”按鈕之前,參與者可以隨按“取消”或“關(guān)

其他事件流

閉”按鈕。

異常事件流提示錯(cuò)誤信息,參與人確認(rèn)

后置條件裝載相應(yīng)的數(shù)據(jù)

3系統(tǒng)概要設(shè)計(jì)

3.1系統(tǒng)設(shè)計(jì)原則

(1)靈活性及可變性原則。靈活性是指系統(tǒng)對(duì)外界環(huán)境變化的適應(yīng)能力。

(2)可靠性原則??煽啃灾赶到y(tǒng)抵御外界干擾的能力及受外界干擾時(shí)的恢復(fù)

能力。

(3)經(jīng)濟(jì)性原則。經(jīng)濟(jì)性是指在滿足系統(tǒng)要求的前提下,不僅追求給用戶帶

來一定的效益,還應(yīng)盡可能減少系統(tǒng)不必要的開銷。

3.2系統(tǒng)框架設(shè)計(jì)

根據(jù)系統(tǒng)的需求分析、用例建模分析結(jié)合開發(fā)平臺(tái)的特點(diǎn)設(shè)計(jì)圖書管理系

統(tǒng)的系統(tǒng)架構(gòu)模型,如圖3-1所示。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-1圖書管理系統(tǒng)整體架構(gòu)圖

3.3系統(tǒng)功能設(shè)計(jì)

系統(tǒng)模塊化結(jié)構(gòu)設(shè)計(jì)工作是在系統(tǒng)分析階段對(duì)子系統(tǒng)劃分的基礎(chǔ)上,在進(jìn)

一步地劃分,將它逐層的分解成多個(gè)大小相同、功能單一、具有一定獨(dú)立性的

模塊,以便程序設(shè)計(jì)工作的同時(shí),有加強(qiáng)了數(shù)據(jù)庫之間的聯(lián)系,使系統(tǒng)更加的

完美。根據(jù)圖書管理系統(tǒng)的需求分析和用例建模分析,本文確定了圖書管理系

統(tǒng)的主要功能模塊,包括圖書管理、借閱管理、讀者管理和類型管理等。圖書

管理管理系統(tǒng)的功能結(jié)構(gòu)圖如圖3-2所示,本系統(tǒng)共有四大主要功能模塊。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-2圖書管理系統(tǒng)功能結(jié)構(gòu)圖

3.3.1圖書管理功能設(shè)計(jì)

針對(duì)系統(tǒng)功能結(jié)構(gòu)圖進(jìn)行進(jìn)一步細(xì)化分析,得到各子模塊相關(guān)功能描述,

功能描述使用功能流程圖描述,如下圖3-3。

圖3-3圖書管理功能模塊流程圖

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.3.2借閱管理功能設(shè)計(jì)

針對(duì)系統(tǒng)功能結(jié)構(gòu)圖進(jìn)行進(jìn)一步細(xì)化分析,得到各子模塊相關(guān)功能描述,

功能描述使用功能流程圖描述,如下圖3-4。

圖3-4借閱管理功能模塊流程圖

3.3.3讀者管理功能設(shè)計(jì)

針對(duì)系統(tǒng)功能結(jié)構(gòu)圖進(jìn)行進(jìn)一步細(xì)化分析,得到各子模塊相關(guān)功能描述,

功能描述使用功能流程圖描述,如下圖3-5。

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-5讀者管理功能模塊流程圖

3.3.4類型管理功能設(shè)計(jì)

針對(duì)系統(tǒng)功能結(jié)構(gòu)圖進(jìn)行進(jìn)一步細(xì)化分析,得到各子模塊相關(guān)功能描述,

功能描述使用功能流程圖描述,如下圖3-6。

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-6類型管理功能模塊流程圖

3.4數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)往往是系統(tǒng)設(shè)計(jì)中最為核心的一個(gè)步驟。其設(shè)計(jì)的優(yōu)良程度直

接影響系統(tǒng)的性能以及執(zhí)行效率。

3.4.1設(shè)計(jì)原則

為取得較好的設(shè)計(jì)效果,進(jìn)行數(shù)據(jù)庫設(shè)計(jì)需要遵從以下原則:

1.標(biāo)準(zhǔn)化原則

數(shù)據(jù)庫設(shè)計(jì)務(wù)必要遵照統(tǒng)一的設(shè)計(jì)標(biāo)準(zhǔn)與命名規(guī)范。具備統(tǒng)一設(shè)計(jì)分類與

編碼規(guī)范的數(shù)據(jù)庫不僅設(shè)計(jì)清晰直觀,更有利于后期數(shù)據(jù)庫及程序的維護(hù),為以

后項(xiàng)目可擴(kuò)展性提供條件。

2.冗余原則

以往數(shù)據(jù)庫的設(shè)計(jì)要求不允許有冗余,要盡可能的滿足3NF。然而,在系

統(tǒng)運(yùn)行過程中,滿足3NF的數(shù)據(jù)庫設(shè)計(jì)并不能高效運(yùn)行。復(fù)雜的表間關(guān)系,會(huì)

降低訪問數(shù)據(jù)庫執(zhí)行的效率;過低的范式標(biāo)準(zhǔn),又會(huì)導(dǎo)致數(shù)據(jù)庫數(shù)據(jù)。所以,

在數(shù)據(jù)庫設(shè)計(jì)中,適當(dāng)?shù)娜哂嘣O(shè)計(jì)(允許派生性冗余設(shè)計(jì),杜絕重復(fù)性冗余設(shè)

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

計(jì)),找到冗余與數(shù)據(jù)處理速度的平衡點(diǎn),常??梢约忍岣咚俣?,又能。

3.4.2概念設(shè)計(jì)

在數(shù)據(jù)庫概念設(shè)計(jì)的過程中,采用E-R圖來描述概念設(shè)計(jì)的結(jié)果。E-R圖是

概念數(shù)據(jù)模型的高層描述所使用的數(shù)據(jù)模型或模式圖,它為表述實(shí)體聯(lián)系模式

圖形式的數(shù)據(jù)模型提供了圖形符號(hào)。根據(jù)圖書管理系統(tǒng)數(shù)據(jù)進(jìn)行分析,其E-R

圖如下圖3-7所示。

圖3-7圖書管理系統(tǒng)E-R圖

3.4.3邏輯設(shè)計(jì)

針對(duì)ER模型,通過數(shù)據(jù)實(shí)體屬性、實(shí)體間關(guān)系的全面分析,結(jié)合圖書管理

系統(tǒng)的實(shí)際需求,根據(jù)E-R圖轉(zhuǎn)化為關(guān)系模式的轉(zhuǎn)換方法,建立起了本系統(tǒng)的

關(guān)系模式,具體轉(zhuǎn)化后的關(guān)系模式如下:

讀者表(ID、賬號(hào)、密碼、是否是管理員)

借還表(ID、讀者IDI、圖書ID、借書時(shí)間、還書時(shí)間)

圖書表(ID、圖書名、作者、價(jià)格、圖書類型ID、描述、是否被借)

借還表(ID、類型名、描述)

3.4.4數(shù)據(jù)字典

讀者表的表結(jié)構(gòu)如表3-1所示,該表主要用于記錄讀者信息,主要字段如

下。

表3-1讀者表表結(jié)構(gòu)

字段名稱數(shù)據(jù)類型字段內(nèi)容主鍵設(shè)置非空

userIdintIDPK是

userNamevarchar賬號(hào)是

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

userPasswordvarchar密碼是

1是管理員,0非

isAdmintinyint是

管理員

借還表的表結(jié)構(gòu)如表3-2所示,該表主要用于記錄借還信息,主要字段如

下。

表3-2借還表表結(jié)構(gòu)

字段名稱數(shù)據(jù)類型字段內(nèi)容主鍵設(shè)置非空

borrowIdintIDPK是

userIdint讀者IDFK是

bookIdint圖書IDFK是

borrowTimedatetime借書時(shí)間是

returnTimedatetime歸還時(shí)間否

圖書表的表結(jié)構(gòu)如表3-3所示,該表主要用于記錄圖書信息,主要字段如

下。

表3-3圖書表表結(jié)構(gòu)

字段名稱數(shù)據(jù)類型字段內(nèi)容主鍵設(shè)置非空

bookIdintIDPK是

bookNamevarchar圖書名是

bookAuthorvarchar作者是

bookPricedecimal價(jià)格是

bookTypeIdint圖書類型IDFK是

bookDescvarchar描述是

1表示借出,0表

isBorrowedtinyint是

示已還

圖書類型表的表結(jié)構(gòu)如表3-4所示,該表主要用于記錄圖書類型信息,主

要字段如下。

表3-4圖書類型表表結(jié)構(gòu)

字段名稱數(shù)據(jù)類型字段內(nèi)容主鍵設(shè)置非空

bookTypeIdintIDPK是

bookTypeNamevarchar圖書類型名是

bookTypeDescvarchar描述是

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)總結(jié):根據(jù)圖書管理的需求分析和用例建模分析,本文確定了

圖書管理系統(tǒng)的主要功能模塊,包括圖書管理、借閱管理、讀者管理和類型管

理等。圖書管理系統(tǒng)的功能結(jié)構(gòu)圖根據(jù)圖書管理系統(tǒng)的需求分析和用例建模分

析,本文確定了圖書管理系統(tǒng)的主要功能模塊。

4系統(tǒng)詳細(xì)設(shè)計(jì)

與用戶進(jìn)行溝通,了解圖書管理的問題,然后進(jìn)一步的進(jìn)行改善。

4.1圖書管理功能模塊設(shè)計(jì)

4.1.1圖書管理功能模塊說明

管理員登錄系統(tǒng),進(jìn)入圖書管理界面,可以對(duì)圖書信息進(jìn)行操作(添加圖書

信息、刪除圖書信息、修改圖書信息、查詢圖書信息)。

4.1.2圖書功能模塊詳細(xì)設(shè)計(jì)

通過需求分析和概要設(shè)計(jì)對(duì)各子功能進(jìn)行分析與設(shè)計(jì),得到與圖書管理功

能模塊靜態(tài)結(jié)構(gòu)類圖,如圖4-1所示。

圖4-1圖書管理系統(tǒng)的類圖

針對(duì)類圖進(jìn)行進(jìn)一步細(xì)化分析,得到該子功能模塊相關(guān)類及方法描述表,

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

如下表4-1所示。

表4-1圖書管理功能模塊相關(guān)類及方法描述表

類名BookInfoController

描述對(duì)圖書信息相關(guān)操作

屬性bookInfoService

queryBookInfosByPage、queryBookInfos、addBookInfo、

方法

deleteBookInfo、updateBookInfo

類名BookInfoServiceImpl

描述對(duì)圖書信息數(shù)據(jù)庫操作

屬性bookInfoMapper

queryBookInfosByPage、queryBookInfos、addBookInfo、

方法

deleteBookInfo、updateBookInfo

4.2借閱管理功能模塊設(shè)計(jì)

4.2.1借閱管理功能模塊說明

管理員登錄系統(tǒng),進(jìn)入借閱管理界面,可以對(duì)借閱信息進(jìn)行操作(刪除借

閱信息、修改借閱信息、查詢借閱信息)。

4.2.2借閱管理功能模塊詳細(xì)設(shè)計(jì)

通過需求分析和概要設(shè)計(jì)對(duì)各子功能進(jìn)行分析與設(shè)計(jì),得到與借閱管理功

能模塊靜態(tài)結(jié)構(gòu)類圖,如圖4-2所示。

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-2借閱管理系統(tǒng)的類圖

針對(duì)類圖進(jìn)行進(jìn)一步細(xì)化分析,得到該子功能模塊相關(guān)類及方法描述表,

如下表4-2所示。

表4-2借閱管理功能模塊相關(guān)類及方法描述表

類名BorrowController

描述對(duì)借閱信息相關(guān)操作

屬性bookInfoService、borrowService

addBorrow、deleteBorrow、updateBorrow、

方法

queryBorrowsByPageByReader、borrowBook、returnBook

類名BorrowServiceImpl

描述對(duì)借閱信息數(shù)據(jù)庫操作

屬性borrowMapper

addBorrow、deleteBorrow、updateBorrow、

方法

queryBorrowsByPageByReader、borrowBook、returnBook

4.34.3讀者管理功能模塊設(shè)計(jì)

4.3.1讀者管理功能模塊說明

管理員登錄系統(tǒng),進(jìn)入讀者管理界面,可以對(duì)讀者信息進(jìn)行操作(添加讀者

信息、刪除讀者信息、修改讀者信息、查詢讀者信息)。

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.3.2讀者管理功能模塊詳細(xì)設(shè)計(jì)

通過需求分析和概要設(shè)計(jì)對(duì)各子功能進(jìn)行分析與設(shè)計(jì),得到與讀者管理功

能模塊靜態(tài)結(jié)構(gòu)類圖,如圖4-3所示。

圖4-3讀者管理系統(tǒng)的類圖

針對(duì)類圖進(jìn)行進(jìn)一步細(xì)化分析,得到該子功能模塊相關(guān)類及方法描述表,

如下表4-3所示。

表4-3讀者管理功能模塊相關(guān)類及方法描述表

類名UserController

描述對(duì)讀者信息相關(guān)操作

屬性u(píng)serService

方法Login、register、queryUsers、deleteUser、updateUser

類名UserServiceImpl

描述對(duì)讀者信息數(shù)據(jù)庫操作

屬性u(píng)serMapper

方法Login、register、queryUsers、deleteUser、updateUser

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.44.4類型管理功能模塊設(shè)計(jì)

4.4.1類型管理功能模塊說明

管理員登錄系統(tǒng),進(jìn)入類型管理界面,可以對(duì)類型信息進(jìn)行操作(添加類型

信息、刪除類型信息、修改類型信息、查詢類型信息)。

4.4.2類型管理功能模塊詳細(xì)設(shè)計(jì)

通過需求分析和概要設(shè)計(jì)對(duì)各子功能進(jìn)行分析與設(shè)計(jì),得到與類型管理功

能模塊靜態(tài)結(jié)構(gòu)類圖,如圖4-4所示。

圖4-4類型管理系統(tǒng)的類圖

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

針對(duì)類圖進(jìn)行進(jìn)一步細(xì)化分析,得到該子功能模塊相關(guān)類及方法描述表,

如下表4-4所示。

表4-4類型管理功能模塊相關(guān)類及方法描述表

類名BookTypeController

描述對(duì)圖書類型信息相關(guān)操作

屬性bookTypeService

queryBookTypes、addBookType、deleteBookType、

方法

updateBookType

類名BookTypeServiceImpl

描述對(duì)圖書類型信息數(shù)據(jù)庫操作

屬性bookTypeMapper

queryBookTypes、addBookType、deleteBookType、

方法

updateBookType

5系統(tǒng)實(shí)現(xiàn)

5.1圖書管理模塊實(shí)現(xiàn)

5.1.1圖書管理模塊界面設(shè)計(jì)

圖書管理界面,如圖5-1所示:該界面主要可以對(duì)圖書信息進(jìn)行操作(添加

圖書信息、刪除圖書信息、修改圖書信息、查詢圖書信息)。

圖5-1圖書管理界面

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.1.2圖書管理模塊核心代碼實(shí)現(xiàn):

步驟1:BookInfoController控制器

publicclassBookInfoController{

@Autowired

BookInfoServicebookInfoService;

//分頁查詢圖書信息

@GetMapping(value="/queryBookInfosByPage")

publicMap<String,Object>queryBookInfosByPage(Integerpage,Integerlimit){

//獲取數(shù)量

Integercount=bookInfoService.getCount();

//獲取數(shù)據(jù)

List<BookInfo>bookInfos=bookInfoService.queryBookInfosByPage(page,limit);

if(!bookInfos.isEmpty()){

bookInfos.stream().forEach(data->{

data.setIsborrowedName("可以借");

if(data.getIsborrowed()==1){

data.setIsborrowedName("已借出");

}

});

}

//結(jié)果map

returngetStringObjectMap(count,bookInfos);

}

privateMap<String,Object>getStringObjectMap(Integercount,List<BookInfo>bookInfos)

{

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

res.put("code",0);

res.put("msg","success");

res.put("count",count);

res.put("data",bookInfos);

returnres;

}

//查詢所有圖書信息

@GetMapping(value="/queryBookInfos")

publicList<BookInfo>queryBookInfos(){

returnbookInfoService.queryBookInfos();

}

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

//添加圖書信息

@PostMapping(value="/addBookInfo")

publicIntegeraddBookInfo(@RequestBodyBookInfobookInfo){

returnbookInfoService.addBookInfo(bookInfo);

}

//獲取圖書數(shù)量

@GetMapping(value="/getCount")

publicIntegergetCount(){

returnbookInfoService.getCount();

}

//刪除圖書信息

@DeleteMapping(value="/deleteBookInfo")

publicIntegerdeleteBookInfo(@RequestBodyBookInfobookInfo){

returnbookInfoService.deleteBookInfo(bookInfo);

}

//刪除一些圖書信息

@DeleteMapping(value="/deleteBookInfos")

publicIntegerdeleteBookInfos(@RequestBodyList<BookInfo>bookInfos){

returnbookInfoService.deleteBookInfos(bookInfos);

}

//更新圖書信息

@PutMapping(value="/updateBookInfo")

publicIntegerupdateBookInfo(@RequestBodyBookInfobookInfo){

returnbookInfoService.updateBookInfo(bookInfo);

}

//查詢圖書信息通過分頁

@GetMapping("/searchBookInfosByPage")

publicMap<String,Object>searchBookInfosByPage(Integerpage,Integerlimit,String

json){

//獲得搜索的參數(shù)

Map<String,Object>searchParam=JsonUtil.parseMap(json,String.class,

Object.class);

//獲取查詢個(gè)數(shù)

intcount=bookInfoService.getSearchCount(searchParam);

//查詢數(shù)據(jù)

List<BookInfo>bookInfos=bookInfoService.searchBookInfosByPage(page,limit,

searchParam);

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

if(!bookInfos.isEmpty()){

bookInfos.stream().forEach(data->{

data.setIsborrowedName("可以借");

if(data.getIsborrowed()==1){

data.setIsborrowedName("已借出");

}

});

}

//結(jié)果map

returngetStringObjectMap(count,bookInfos);

}

//讀者的查詢數(shù)量

@GetMapping(value="/reader/getSearchCount")

publicIntegergetSearchCountByReader(Stringbookname){

//字符串處理,去掉兩邊空格

bookname=bookname.trim();

if(bookname.equals("")||bookname.equals("null")){

returnbookInfoService.getCount();

}else{

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

map.put("bookname",bookname);

returnbookInfoService.getSearchCount(map);

}

}

//讀者的搜索圖書

@GetMapping("/reader/searchBookInfosByPage")

publicMap<String,Object>searchBookInfosByPageByReader(Integerpage,Integerlimit,

Stringbookname){

//字符串處理,去掉兩邊空格

bookname=bookname.trim();

Map<String,Object>res;

if(bookname.equals("")||bookname.equals("null")){//無參,就是獲取全部

res=queryBookInfosByPage(page,limit);

}else{//有參,搜索圖書

StringsearchJson="{\"bookname\":\""+bookname+

"\",\"bookauthor\":\"\",\"booktypeid\":\"\"}";

res=searchBookInfosByPage(page,limit,searchJson);

}

returnres;

}

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

//讀者的獲取類型

@GetMapping(value="/reader/getCountByType")

publicIntegergetCountByType(Integerbooktypeid){

if(booktypeid==null)return0;

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

map.put("booktypeid",booktypeid);

returnbookInfoService.getCountByType(map);

}

//讀者的通過分類查詢圖書信息

@GetMapping("/reader/queryBookInfosByPageByType")

publicMap<String,Object>queryBookInfosByPageByType(Integerpage,Integerlimit,

Integerbooktypeid){

if(booktypeid==null)returnnull;

//放參數(shù)

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

map.put("booktypeid",booktypeid);

//獲取查詢個(gè)數(shù)

intcount=bookInfoService.getCountByType(map);

//查詢數(shù)據(jù)

List<BookInfo>bookInfos=bookInfoService.queryBookInfosByPageByType(page,

limit,map);

//結(jié)果map

returngetStringObjectMap(count,bookInfos);

}

@GetMapping("/reader/search")

publicMap<String,Object>search(Integerpage,Integerlimit,Stringname){

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

if(name.equals("")||name.equals("null")){//無參,就是獲取全部

res=queryBookInfosByPage(page,limit);

}else{//有參,搜索圖書

res.put("code",0);

List<BookInfo>list=bookInfoService.search(name);

if(list.isEmpty()){

res.put("count",0);

}else{

res.put("count",list.size());

list.stream().forEach(data->{

data.setIsborrowedName("可以借");

if(data.getIsborrowed()==1){

data.setIsborrowedName("已借出");

}

});

25

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

}

res.put("data",list);

}

returnres;

}

步驟2:操作數(shù)據(jù)庫

publicclassBookInfoServiceImplimplementsBookInfoService{

@Resource

BookInfoMapperbookInfoMapper;

@Override

publicList<BookInfo>queryBookInfosByPage(Integerpage,Integersize){

returnbookInfoMapper.selectAllByLimit((1)*size,size);

}

@Override

publicIntegergetCount(){

returnbookInfoMapper.selectCount();

}

@Override

publicIntegeraddBookInfo(BookInfobookInfo){

returnbookInfoMapper.insertSelective(bookInfo);

}

@Override

publicIntegerdeleteBookInfo(BookInfobookInfo){

intcount=0;

try{

count=bookInfoMapper.deleteByPrimaryKey(bookInfo.getBookid());

}catch(Exceptione){

e.printStackTrace();

}

returncount;

}

@Override

publicIntegerdeleteBookInfos(List<BookInfo>bookInfos){

intcount=0;

for(BookInfobookInfo:bookInfos){

26

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

count+=deleteBookInfo(bookInfo);

}

returncount;

}

@Override

publicIntegerupdateBookInfo(BookInfobookInfo){

returnbookInfoMapper.updateByPrimaryKeySelective(bookInfo);

}

@Override

publicIntegergetSearchCount(Map<String,Object>searchParam){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論