admin 管理员组

文章数量: 887019

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。

  1. 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
  2. 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
  3. 赠送开题报告模板,帮助书写开题报告。

作者完整代码目录供你选择:

  1. 《Springboot网站项目》400套
  2. 《ssm网站项目》800套
  3. 《小程序项目》300套
  4. 《App项目》500套
  5. 《Python网站项目》600套

⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

项目展示

 

 

 

摘 要

以往的图书馆管理事务处理主要使用的是传统的人工管理方式,这种管理方式存在着管理效率低、操作流程繁琐、保密性差等缺点,长期的人工管理模式会产生大量的文本借书与文本数据,这对事务的查询、更新以及维护带来不少困难。随着互联网时代的到来,现如今网络的覆盖率已近非常的全面,现在人们对网络的需求也越来越高,为了减轻管理人员的工作负担,提高管理人员的工作效率,因此通过网络平台创建一个便捷高效的图书馆管理来优化管理业务。通过本网站,用户可以在线查看相关信息可以说图书馆管理是偏向实际应用的网站。本文介绍了图书馆管理设计方案,该网站采用目前JSP中最流行的SSM框架和Eclipse编辑器、MySQL数据库设计并实现的。网站功能包含系统用户管理、图书管理、用户管理、借书管理、续借管理、违章缴款管理等模块。概述了整个系统的设计框架,介绍了系统软件开发编译环境的搭建,阐述了各模块的功能及程序调用关系设计过程。

关键词:JSPMySQLSSM框架

第1章 绪论

1.1开发背景

现今社会生活中,随着需求的日益多元化,互联网成了主流,所持有的管理软件资源也随之丰富,最直观的表现就是管理系统无论从种类还是数量上都大幅增加,这就加快了管理系统的开发与研究的脚步。

在发展迅速的信息化时代中,越来越多互联网科技走进人们的生活,人们开始接受互联网带来的方便快捷的服务。图书馆管理如果还用传统的管理模式,时间久了,管理十分不便利,存在误差,查询难的现象,一旦数据过多,人工管理方式就很难维持。随着信息技术的应用拓展,逐渐引用了信息化技术管理,逐渐取代了人工管理模式,采用计算机系统来管理用户信息,智能的管理减少了人力物力财力,节省了管理的时间和空间,提升了工作的准确率和效率。本次系统开发,主要以图书馆管理为对象,根据需求来完成功能设计[1][2]

1.2开发意义

用户往往因为不能及时图书而造成许多不必要的烦恼。另一方面,图书信息没能进行系统的管理与维护使用户没能在系统里及时的获取到信息。而传统的图书馆管理,采用的还是人工管理、手工备案、人工查询的方式。但是随之用户人数的增多这种管理方式的工作量不断加大,这种做法就存在费时费力、缺乏时效性、不利于调动人员的积极性等缺点。一旦网站建立好之后,一方面,用户可以在第一时间在系统里发布所需的图书信息,另一方面,系统还可以管理图书信息,就减少了人工处理的工作量。

建立本图书馆管理是为了通过管理者对图书信息的录入和发布,以方便用户对自己所需图书信息的查询,一旦查询到自己所需要的图书信息,用户便可以从系统中获得图书信息信息,以方便在线及时发布。如果用户没有查询到自己所需求的图书信息信息,也可以在线提醒管理者增添。这样,本系统旨在建立用户、管理者二者之间的桥梁关系,从而使用户能及时有效的从管理者手中获取到信息。所以我们认为建立一个网上图书馆管理是非常必要的,其方便高效、简单快捷的管理模式是很有使用性的[3][4] 

1.3研究内容

  1. 不同管理员的登录问题:根据管理员的类别(管理员、用户)实现管理员操作权限的区分并显示不同的操作界面。
  2. 数据库的连接问题:数据库连接为系统中的关键技术。
  3. 数据的一致性和安全问题:本系统必须保证数据的一致性和安全,才能实现有效的管理。不能让没有权限的管理员对数据进行操作并且定期对数据库进行备份。
  4. 界面开发:系统界面的设计很重要,要使界面具有亲和力。
  5. 分析信息化现状;
  6. 研究图书馆管理的现状及存在的问题;
  7. 研究系统平台的总体架构、总体设计、数据库设计、数据库安全设计及功能设计;
  8. 研究平台各个子系统的功能及实现的方法、信息技术的融合、信息安全技术的维护;
  9. 进行图书馆管理的功能设计。

第2章 主要技术和工具介绍

2.1 JSP技术

JSP是一种跨平台的网页技术,最终实现网页的动态效果,与ASP技术类似,都是在HTML中混合一些程序的相关代码,运用语言引擎来执行代码,JSP能够实现与管理员的交互,方便管理员的使用。

JSP技术具有诸多优点,可以忽略所使用的平台,实现仅需一次编写就能够到处运行使用,而且还具有很好的安全性和多平台支持的特性,能够在任何平台的任何环境中进行开发,进行系统部署和环境扩展。它也有属于自己的功能强大的开发工具的支持,并且可以通过很多渠道免费得到,这就为JSP技术的传播也准备了条件[5][6]

JSP具有如下优点:

(1) 开放的技术:JSP技术基于平台和服务器的相互独立,技术支持来自广泛 的、专门的、各种工具包,有服务器的组件和数据库产品开发商提供。相比之下,ASP技术主要依赖MICROSOFT支持。

(2) 平台和服务器的独立性:JSP编写的代码可运行在任何符合Java语法结构的环境中。这样JSP就能够运行在多种WEB服务器上并支持来自多家开发商提供的各种工具包。

(3) 开放的开发过程,开放的源码:自1995年以来,SUN用开放过程方法同国际JSP组织合作开发和修改JSP技术和规范。

(4) JSP标记可扩充性:JSP技术能够为开发者扩展标记,充分利用与XML兼容的标记技术强大的功能,大大减少对脚本语言的依赖。

(5)JSP跨平台性:由于JSP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下[8]

2.2 SSM 框架 

SSM 框架整合即为 Spring、SpringSSM、Hibernate 三个开源框架的整合。主要是采用 Spring,Hibernate 进行 SSM 整合。

2.2.1 Spring框架

Spring是独立的SSM模式框架,通过IoC技术,降低各组件之间的依赖,而Spring提供的面向切面编程(Aspect Oriented Programming,AOP)技术,在系统上具有独特优势。Spring框架不仅能有效地服务中间层对象,而且易于同其他层框架进行无缝集成,使各层之间相互独立,实现了在架构上各框架间的低耦合性。

Spring还有一个很重要的特性,就是可以方便集成各种优秀的框架。本系统主要集成了 Dubbo服务框架、Redis 缓存服务、Solr 搜索服务、ActiveMQ 消息队列服务。Spring集成系统要用到的第三方框架后,就可以通过简单的配置调用第三方框架提供的 API,实现系统的通知公告服务。

2.2.2 SpringMVC

SpringMVC属于Spring框架的衍生模块,SpringMVC通过 DispatcherServlet 这个前端控制器(也叫中央调度器,笔者认为中央调度器更能体现其作用),来调用 MVC的三大件:Controller、Model、View。这样就保证 MVC的每一个组件只与 DispatcherServlet 耦合,而彼此之间独立运行,大大降低了程序的耦合性。使得系统的设计复合程序的开发之道,高内聚底耦合的设计原则。

2.2.3 MyBatis

MyBatis作为一个优秀的持久化工具,通过对象关系映射(Object Relational Mapping,ORM)架起了jsp对象与关系数据库间的桥梁,很好的协调对象与数据库的交互,提供数据查询和恢复机制,实现了与底层数据库的分离。

技术的可行性是指在当今所拥有的技术条件之下,计算机软件和硬件的发展能否够满足发展的要求。由于本系统开发基于jsp语言,在一般的计算机上就能够满足开发本系统所需要的软硬件条件;因为它占用的内存本来就相对较少,我们用mysql数据对软件的开发以及设计在理论上没有问题的原因是:它占用的内存实在是太少了[8]

2.3 MySQL数据库

一个新开发的程序,需要有数据库的配合。图书馆管理使用的数据库是MySQL。MySQL是一种关系数据库管理系统,它最明显的机制就是将有关联的数据各个建表,多个表格通过不同的MySQL语句实现对数据的增删改查,几个表格在一起相辅相成,分工明确。整体条理清晰,加快了速度并且提高了灵活性[6]。

一方面,MySQL因为他的性能优越,同时加上使用Eclipse开放式的开发环境,使得MySQL的优点发挥到极致,另一方面,MySQL数据库的优点很明显。

  1. MySQL数据库可以在编译后,直接可以带到任何环境中使用。

(2)支持多线程,可以很好的利用CPU资源。

(3)速度更快,因为它的查询机制优化很好。

(4)MySQL是免费的。

第3章 系统分析

3.1可行性分析

本文的设计的系统将会分别从经济的可行性,技术的可行性以及操作的可行性等方面进行全面的可行性的分析。

3.1.1经济可行性

由于系统开发的工具和软件都是可以免费使用的,因此系统开发的费用很少,甚至只需要少许的费用就可以开发出本系统,也可以忽略不计;再加上通过系统的实施可以提高管理员借书的私密性,最大程度的保护管理员的信息安全,因此,从这些方面就可以说经济上是可行的 [7][8]

3.1.2技术可行性

技术的可行性是指在当今所拥有的技术条件之下,计算机软件和硬件的发展能否够满足发展的要求。由于本系统开发基于Java语言,在一般的计算机上就能够满足开发本系统所需要的软硬件条件;因为它占用的内存本来就相对较少,我们用MySQL数据对软件的开发以及设计在理论上没有问题的原因是:它占用的内存实在是太少了。

3.1.3操作可行性

作为当今大部分管理员来讲,都是受过良好教育,具有高素质的人才,都能十分容易的使用电脑进行各种操作,是以本文在开发设计上使用JSP技术进行设计的图书馆管理,其操作是完全可行的 

通过上述分析,可以确定该系统具有实际开发的价值和可能性。

3.2需求分析

针对现存的问题和需要,通过功能需求的分析,特建立了数字化、信息化的图书馆管理。

本系统主要包含了图书管理、用户管理、续借等多个功能模块。下面分别简单阐述一下这几个功能模块需求。不同的权限对应相应的功能模块的需求,管理员权限的级别是最高的,所以所对应的需求是最多的,下面根据不同的权限分别简单阐述一下各个权限的需求。

管理员对应的功能需求如下:

管理员的权限是最高的,可以对系统的图书,用户信息,续借等信息进行统一管理。

管理员可添加管理员,添加更多的管理人员,并且能修改和删除管理员的信息资料。

有关图书,管理员可添加图书,添加有关图书的出版社、借阅次数、库存、类别、图片、图书编号、图书简介、图书名称、作者等信息,添加的图书都会显示在系统中,还可以通过关键字进行搜索查询,管理员也可以修改和删除相关的图书。

有关续借管理,管理员可添加续借,添加有关续借的出版社、借书单号、借书人、借书日期、库存、类别、图书编号、图书名称、续借天数、作者等信息,添加的续借都会显示在系统中,还可以通过关键字进行搜索查询,管理员也可以修改和删除相关的续借。

有关违章缴款管理,管理员添加违章缴款,添加有关违章缴款的罚款金额、罚款类型、罚款详情、借书单号、借书人、借书日期、类别、流水号、是否缴款、图书等信息,添加的违章缴款都会显示在系统中,还可以通过关键字进行搜索查询,管理员也可以修改和删除相关的用户。

有关借书管理模块,管理员可添加借书,比如可添加有关借书的出版社、借书单号、借书人、借书日期、库存、类别、图书编号、图书名称、作者等信息,添加的借书都会显示在系统中,还可以通过关键字进行搜索查询,管理员也可以修改和删除相关的借书。

用户对应的功能需求如下:

用户可以通过系统进行注册,注册完成并通过系统审核的用户可查询,修改自己的基础信息,比如修改登录密码等功能。

用户可通过网站在线浏览,查询网站的用户,借书,图书,还可以在网站在线续借。

3.3业务流程分析

总体业务流程:用户以及管理员以不同的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统,管理系统等功能操作 。

系统的业务流程如下图所示。  

图3-1系统业务流程图

3.4数据流程分析

数据流图的简称为DFD,是通过使用图形的方法对系统所具备的逻辑功能进行阐述,描述系统数据的流向和逻辑变换。由于该方法能将难以阐述的问题进行表述,因此被开发者广泛应用,是当前应用范围较为广泛的结构化系统分析方法。

零层数据流程是流程中最抽象的一层,它包括了登录管理、管理员功能管理和检索维护管理等功能模块,在登录模块使用到的数据存储有管理员账户信息文档、管理员信息文档,管理员功能管理模块需要的存储是管理员添加信息文档、查询信息文档、删除信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。

系统的层数据流图如下图所示。

图3-2系统顶层数据流图

系统数据流图中,数据实体包括普通用户,普通用户数据流程包括功能选择、图书管理、用户管理;管理员数据流包括添加信息、删除信息、修改信息、查询信息、浏览信息、提示信息等。

系统的层数据流图如下图所示。

图3-3系统中层数据流图

第4章 系统设计

4.1系统结构设计

系统设计主要是管理员登录后对整个系统相关操作进行处理,可进行管理员的添加和删除,图书管理,用户管理等操作。

系统的功能结构图如下图所示。

       

图4-1系统功能结构图

4.2功能模块设计

系统登录:系统登录是管理员访问系统的路口,设计了系统登录界面,包括管理员名、密码和验证码,然后对登录进来的管理员判断身份信息,判断是管理员管理员还是普通用户。

管理员管理:管理员可以管理系统的其他普通用户的账号,包括录入新管理员,删除现有的普通用户,修改现有的普通用户的信息,并可以通过管理员名和姓名等关键字搜索普通用户,打印管理员列表页面,导出管理员列表至excel中。

修改密码:系统所有管理员(管理员和普通用户)应该都要能修改自己的登录密码,修改后需要重新登录。

个人资料管理:由普通用户使用,普通用户登录系统后,可以修改个人原始信息,如修改电话号码、邮箱等,管理员的管理员名是无法修改的。

登录情况管理:系统每个管理员应该都能查看个人的历史登录情况,如登录IP、登录时间、登录地址等,防止管理员账号被盗,加强管理员账号安全。

操作日志管理:系统每个管理员应该都能查看个人的历史操作日志,如管理员添加了某条数据,历史操作日志需要展示操作人,操作描述,操作时间等信息。防止系统被黑客攻击,加强系统的安全性。

图书管理:管理员发布图书后,普通用户便可以查询到该图书,管理员选择某个图书,查询图书,管理员审核添加,或删除图书。

借书管理:管理员发布借书后,普通用户便可以查询到该借书,管理员选择某个借书,查询借书,管理员审核添加,或删除借书。

违章缴款管理:系统违章缴款发布违章缴款后,普通违章缴款便可以查询到该违章缴款,管理员选择某个违章缴款,查询违章缴款,管理员审核添加,或删除违章缴款。

续借管理:用户在线发布续借信息,管理员通过系统管理续借并可管理。

4.3数据库设计

4.3.1 E-R图设计

管理员实体包括管理员名称、密码和权限三个属性

管理员体ER图如下图所示。

图4-4管理员ER图

用户ER图如下图所示。

图4-5用户ER图

图书ER图如下图所示。

图4-6图书ER图

借书ER图如下图所示。

图4-7借书ER图

根据系统各个实体的关系,得出系统的总体ER图。

系统总体ER图如下图所示。

图4-7系统总体ER图

4.3.2设计

根据E-R模型,系统建立了以下逻辑数据结构,下面是各数据表的详细在服务器上建立数据库,其中包括以下表:

管理员用户表

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

username

varchar

20

50

用户名

3、

pwd

varchar

20

50

密码

4、

cx

varchar

20

50

权限

5、

addtime

datetime

8

8

添加时间

新闻公告表

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

biaoti

varchar

50

300

标题

3、

leibie

varchar

20

50

类别

4、

neirong

text

8

8

内容

5、

tianjiaren

varchar

20

50

添加人

6、

shouyetupian

varchar

20

50

图片

7、

dianjilv

int

4

4

点击率

8、

addtime

datetime

8

8

添加时间

系统简介

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

leibie

varchar

50

300

类别

3、

content

text

8

8

内容

留言板

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

cheng

varchar

20

50

昵称

3、

xingbie

varchar

8

20

头像

4、

QQ

varchar

8

20

QQ

5、

youxiang

varchar

8

20

邮箱

6、

dianhua

varchar

8

20

电话

7、

neirong

varchar

50

500

留言内容

8、

addtime

datetime

8

8

添加时间

9、

huifneirong

varchar

50

500

回复内容

评论表

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

pinglunneirong

varchar

20

50

评论内容

3、

pinglunren

varchar

8

20

评论人

4、

huifu

varchar

20

50

回复

5、

addtime

datetime

8

8

添加时间

注册用户表

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

yonghuming

varchar

20

50

用户名

3、

mima

varchar

8

20

密码

4、

xingming

varchar

20

50

姓名

5、

xingbie

varchar

20

50

性别

6、

chushengnianyue

varchar

20

50

出生年月

7、

QQ

varchar

20

50

QQ

8、

youxiang

varchar

20

50

邮箱

9、

dianhua

varchar

20

50

电话

10、

shenfenzheng

varchar

20

50

身份证

11、

touxiang

varchar

20

50

头像

12、

dizhi

varchar

20

50

地址

13、

beizhu

varchar

20

50

备注

14、

addtime

datetime

8

8

添加时间

友情连接

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

4

主键ID

2、

wangzhanmingcheng

varchar

20

50

网站名称

3、

wangzhi

varchar

8

20

网址

4、

logo

varchar

20

50

LOGO

5、

addtime

datetime

8

8

添加时间

图书信息

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

8

主键ID

2、

tushubianhao

varchar

50

50

图书编号

3、

tushumingcheng

varchar

50

50

图书名称

4、

leibie

varchar

50

50

类别

5、

zuozhe

varchar

50

50

作者

6、

chubanshe

varchar

50

50

出版社

7、

kucun

float

10

10

库存

8、

jieyuecishu

float

10

10

借阅次数

9、

tupian

varchar

50

50

图片

10、

tushujianjie

text

8

8

图书简介

11、

addtime

datetime

8

8

添加时间

借书记录

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

8

主键ID

2、

jieshudanhao

varchar

50

50

借书单号

3、

tushubianhao

varchar

50

50

图书编号

4、

tushumingcheng

varchar

50

50

图书名称

5、

leibie

varchar

50

50

类别

6、

zuozhe

varchar

50

50

作者

7、

chubanshe

varchar

50

50

出版社

8、

kucun

varchar

50

50

库存

9、

jieshuriqi

datetime

8

8

借书日期

10、

jieshuren

varchar

50

50

借书人

11、

beizhu

text

8

8

备注

12、

addtime

datetime

8

8

添加时间

续借记录

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

8

主键ID

2、

jieshudanhao

varchar

50

50

借书单号

3、

tushubianhao

varchar

50

50

图书编号

4、

tushumingcheng

varchar

50

50

图书名称

5、

leibie

varchar

50

50

类别

6、

zuozhe

varchar

50

50

作者

7、

chubanshe

varchar

50

50

出版社

8、

kucun

varchar

50

50

库存

9、

jieshuriqi

varchar

50

50

借书日期

10、

jieshuren

varchar

50

50

借书人

11、

xujietianshu

float

10

10

续借天数

12、

beizhu

text

8

8

备注

13、

addtime

datetime

8

8

添加时间

违章缴款

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1、

ID

int

4

8

主键ID

2、

liushuihao

varchar

50

50

流水号

3、

jieshudanhao

varchar

50

50

借书单号

4、

tushubianhao

varchar

50

50

图书编号

5、

tushumingcheng

varchar

50

50

图书名称

6、

leibie

varchar

50

50

类别

7、

jieshuriqi

varchar

50

50

借书日期

8、

jieshuren

varchar

50

50

借书人

9、

fakuanleixing

varchar

50

50

罚款类型

10、

fakuanxiangqing

text

8

8

罚款详情

11、

fakuanjine

float

10

10

罚款金额

12、

shifoujiaokuan

varchar

50

50

是否缴款

13、

beizhu

text

8

8

备注

14、

addtime

datetime

8

8

添加时间

第5章  系统实现

5.1主页面的实现

首页是网站的入口,主要包含了:新闻信息、图书信息等导航功能。首页页面,如下图所示。

5-1主页界面

5.2注册模块的实现

用户有独立的注册界面,用户填写好注册信息后,会有个一审核的过程,经过管理员审核注册成功,并将注册的信息加入用户表中。

图5-2用户注册界面

5.3登录模块的实现

系统登录模块可分为前台登录模块和后台登录模块,为确保系统安全性,系统操作员只有在登录界面输入正确的管理员名、密码、权限以及验证码,单击“登录”按钮后才能够进入本系统的主界面。

前台登录入口如下所示。

图5-3前台登录界面

后台登录入口如下所示。

图5-3后台登录界面

5.4图书管理模块的实现

管理员添加图书是在点击添加按钮的前提下操作的,当页面跳转至添加页面,添加成功后,管理员在菜单栏进行图书管理,通过查询数据库的图书表列出所有图书,每条图书对应一个删除按钮和修改按钮,当管理员点击删除按钮,直接在数据库删除图书,并重定向当前页面,当管理员选择点击修改,则进入修改页面,进行图书的修改。

图书添加页面设计效果如下图所示。

图5-5 图书添加界面

图书管理页面效果如下图所示。

图5-6 图书管理界面

第6章  系统测试

6.1测试目的

软件测试的目的主要是发现软件缺陷和漏洞,其次,软件测试能够识别图书风险。为开发人员和程序经理提供软件测试的反馈结果,为风险评估提供必要的信息。再者,软件测试确保在上线日前达到上线标准。包括持续追踪图书进度和严格把控各个开发阶段的产品质量。

基于JSP的图书馆管理,主要测试管理员登录模块、用户管理模块、图书管理模块、和退出模块系统等功能是否实现。

6.2测试概述

1.测试的原则

(1)系统测试应该避免测试自己的程序,以免发现不了细小的问题。

(2)系统测试用例应有两部分组成,分别为输入测试和输出测试。

(3)系统测试数据应当引用不合理的数据进行测试,选取不同情况的进行逐一测试。

(4)不仅要检查程序是否达到预期的效果,还要检查程序是否执行了规定以外的操作。

(5)对出现错误多的模块进行集中测试。

(6)已发现错误的模块修改后,应及时进行重新测试。

2.测试的方法

测试方法主要有人工测试和机器测试。

(1)人工测试

人工测试又称代码复审,包括个人复查、走查、会审三种方法[7]

(2)机器测试

机器测试主要是由黑盒测试和白盒测试两种方法。

在最后的测试阶段,系统采用后黑盒测试和白盒测试想结合的方法。黑盒测试主要用于对系统的输入和输出特性进行测试,检测功能方面存在的错误与可能存在的缺陷。白盒测试主要用于对软件的过程及逻辑路径进行测试,发现性能方面的错误。具体采用的测试方法为系统测试和单元测试。

6.3单元测试

6.3.1登录测试

登录模块需要测试的功能有:输入登录名和密码,点击“登录”按钮是否正常进入系统首页。

登录测试用例如下表所示。

6-1登录测试用例

测试模块

管理员登录模块测试

测试目的

测试当登陆信息输入不符合要求时,系统是否能进行相应处理并给出提示。

测试方法

黑盒测试

测试数据

1不输入管理员名和密码,直接点击登陆。

2输入未注册过的管理员名。例如:abcdefg

3输入正确管理员名,错误密码。例如:管理员名abcdefg、密码 000

4输入正确管理员名,正确匹配密码。例如:管理员名abcdefg、密码 111

预期结果

1 界面不跳转,弹出对话框,提示管理员输入必填项。

2界面不跳转,弹出对话框,提示管理员当前管理员名尚未注册。

3界面不跳转,弹出对话框,提示管理员密码错误。

4界面实现跳转,登陆功能正常进行。

实际结果

与预想一致。

结论

登陆模块实现了基本的异常输入应对。

6.3.2图书管理测试

管理员可以添加修改图书,在填写图书后,点击添加便能成功的添加图书

图书管理测试用例如下表所示。

6-2图书管理测试用例

测试模块

图书管理模块测试

测试目的

测试当图书输入不符合要求时,系统是否能进行相应处理并给出提示。

测试方法

黑盒测试

测试数据

1管理员登录后,未填写图书编号选项,点击添加图书

2管理员登录后,未填写图书名称选项,点击添加图书

3管理员登录后,输入图书必填项,点击添加图书,

预期结果

1图书添加失败,系统提示请输入图书编号

2图书添加失败,系统提示请输入图书名称

3图书添加成功,系统提示添加图书成功

实际结果

与预想一致。

结论

图书管理模块实现了基本的异常输入应对。

6.3.3用户管理测试

管理员可以添加修改用户,在填写用户后,点击添加便能成功的添加用户

用户管理测试用例如下表所示。

6-3用户管理测试用例

测试模块

用户管理模块测试

测试目的

测试当用户输入不符合要求时,系统是否能进行相应处理并给出提示。

测试方法

黑盒测试

测试数据

1管理员登录后,未填写用户号选项,点击添加用户

2管理员登录后,输入用户必填项,点击添加用户,

预期结果

1用户添加失败,系统提示请输入必填项

2用户添加成功,系统提示提交成功

实际结果

与预想一致。

结论

用户管理模块实现了基本的异常输入应对。

6.4测试结果

测试结果包括界面及功能测试和代码测试两部分,本系统对每个功能点做了详细的测试,测试结果正常。

测试结果表如下表所示。

表6-5系统功能测试结果表

序号

测试模块

功能点

质量保证标准

问题属性

测试结果

F1

系统用户管理模块

修改密码

正确性

故障

正常

权限设置

正确性

故障

正常

角色管理

正确性

缺陷

正常

用户信息添加

正确性

故障

正常

用户信息修改

正确性

故障

正常

用户信息查询

正确性

故障

正常

用户信息删除

正确性

故障

正常

退出系统

正确性

故障

正常

F2

功能管理模块

图书添加

正确性

故障

正常

图书修改

正确性

故障

正常

图书删除

正确性

故障

正常

借书添加

正确性

故障

正常

借书修改

正确性

故障

正常

借书删除

正确性

故障

正常

用户添加

正确性

故障

正常

用户修改

正确性

故障

正常

用户删除

正确性

故障

正常

第7章  总结

经过几个月的努力和坚持,图书馆管理系统终于完成了,那个时候专业课还没有学完,所以对开发项目来说困难重重,当时只好分模块做。先去深入到用户中了解他们的需求,做好需求分析文档。像技术篇的,一方面通过自己所学习的专业课中,去学习核心知识,并记录到自己的文档中,另一方面,再加上网络授课以及网络资料这几部分获得知识。这是前期的准备,一整套下来,写到这里,感觉把大学所有的专业房产信息又学习了一遍。

整个过程遇到了很多的挫折,但是宝剑锋从磨砺出,正是挫折让我们不断的进步。但是整个过程的收获还是非常丰富的。在精神上,让我明白了一颗永不放弃,积极上进的内心是非常重要的,越努力越幸运。在专业知识上,让我明白掌握牢固专业知识,加上发散思维,是让人快速进步的方法。在生活中,学会与人沟通,有问题尽可能的沟通解决,不要自己钻牛角尖。

以书会友平台,仅仅是一个很小的子系统,不像大型企业所开发的应用软件那样完美。但是这仅仅是我人生路上的一小步。而毕业论文必须用心去写,而不是抱着投机取巧的心态蒙混过关,这个过程是让人成长的。感谢这个过程,感谢这个过程中积极帮助我,给与我帮助的人。

此外,以后我依旧要保持一颗积极上进的心,求知若渴,虚心若愚,不断进步,不断学习

致  谢

经历了近三个多月的动手实践及老师辛勤的指导和同学朋友热心的帮助下,本人的毕业设计图书馆管理的基本功能也基本完成。

此次设计中,通过不断的探讨与学习使我熟悉、使我初步了解了JSP相关技术。做的是一个SSM框架的图书馆管理,使我对做网站所需要,及运行的环境有了初步的了解,在此次设计中我翻阅了较多的书籍,在有限的时间了丰富了对图书馆管理技术的知识也积累了少许的经验。起初对JSP的初步认识,通过这次设计更进一步的了解了其工作原理,懂得了配置服务器环境,连接数据库源,在设计过程中,也学会了用dreamweaver设计一个简单的页面,增强了动手的能力,激发了在此方面的兴趣。

但是由于时间、基础及缺乏实践等多方面的问题,还有诸多需要解决的问题依然存在,设计中很多方面考虑不够周全或者考虑不到。

非常感谢我的老师,我的同学,我的朋友并希望在今后的学习生活中不断陪养多方面的兴趣,不断学习进步从而能够实现独立完成。设计中存在的诸多缺点诚肯老师的原谅。

参考文献

[1]刘晓华,周慧贞.JSP应用开发详解[M].电子工业出版社,2013

[2]阿斯利森,舒塔,金灵等译.Java基础教程[M].人民邮电出版社,2014

[3]马石安, JSP Web程序设计与图书案例开发[M]. 清华大学出版社 , 2017 

[4]王珊,萨师煊.数据库系统概论[M].高等物业出版社出版社,2010 

[5]王毅,周峰,孙更新.JSP经典案例设计与实现[M].电子工业出版,2013 

[6]张海藩, 软件工程导论[M]. 清华大学出版社 , 2013:5-14 

[7]郑阿奇.MySQL实用教程[M].电子工业出版社,2013

[8]谭庆平,毛新军编著.软件工程实践[M].高等物业出版社,2014

[9]林邦杰.JSP程序设计入门教程[M]. 中国青年出版社,2011

[10]谢希仁.计算机网络[M]. 电子工业出版社,2012

[11] 列旭松,JSP核心技术与最佳实践[M]. 机械工业出版社 , 2012

[12]王行言.Java语言与面向对象程序设计[M].清华大学出版社,2013:

[13]威廉斯, JSP&MySQL Web数据库应用开发指南[M]. 东南大学出版社 ,2006

[14]陈云芳.基于B/S的Web应用开发实战[M].人民邮电 出版社, 2012  

[15] DavidHopkins.Improvingthe Quality of Teaching and Learning[J].Support for Learning,2014

核心代码展示

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

项目推荐

【计算机毕业设计】各项技术选题汇总

【计算机毕业设计】基于Springboot的网上购物商城销售系统

【计算机毕业设计】开题报告模板2

【计算机毕业设计】任务书案例2

【网站项目】基于springboot的在线考试系统

【网站项目】基于springboot的4S店车辆管理系统

【软件设计】基于python的高校资产管理系统

【网站项目】python009基于推荐算法的电影推荐系统

【网站项目】基于Springcloud的分布式架构网上商城

⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️

⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

本文标签: 管理系统 毕业设计 图书馆 计算机