《基于SSH框架的图书管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于SSH框架的图书管理系统的设计与实现.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北京理工大学珠海学院2020届本科生毕业设计基于SSH框架的图书管理系统的设计与实现学 院 计算机学院专 业:姓 名:指导老师:计算机科学与技术黎禄斌学 号:职 称:160201102989吴方副教授中国珠海二二 年 五 月诚信承诺书本人郑重申明:本人郑重承诺所呈交的毕业设计基于SSH框架的图书管理系统的设计与实现是本人在指导教师的指导下独立进行相关研究所获得的研讨成果。文中所引用他人的论点和资料,都在论文后按顺序列出其参考文献,设计运用的数据真实可信。承诺人签名 日期: 年 月 日基于SSH框架的图书管理系统摘 要 如今已经我们已经步入了信息时代,而在信息科技快速发展的形势下,网络现已成为我
2、们工作和日常生活中必不可少的一部分。计算机技术的发展不仅提高了我们的工作效率,为日常工作提供了极大的便利,而且还在大大地改善了我们生活质量。通过计算机代替人工来处理数据已经成为趋势。传统的通过人工来管理图书资源和读者借阅信息的方式不仅浪费时间和人力,而且还容易导致数据丢失错乱,基于计算机技术的图书管理系统在此背景下应运而生。图书管理系统主要是帮助图书管理员实现通过计算机来进行图书信息和读者借阅信息的管理的目的,将传统的通过人工来管理的信息都交给计算机进行处理,由计算机来对相关信息进行增加、修改、查询和删除操作;普通用户也可以通过图书管理系统来对图书进行借阅归还操作和对自己的图书借阅信息进行查询
3、。该图书管理系统基于Java的SSH框架进行设计开发,后台使用Java来进行增删改查操作,前端使用JSP来搭建页面,同时使用了MySQL作为数据库系统进行相关的数据保存。该系统为图书管理员提供了一个简单的平台来对图书信息、读者信息和借阅信息进行管理,在降低了图书管理员的工作量和提高图书管理员的工作效率的同时,也方便了用户的操作,适应了时代的发展。关键词:图书管理系统,Java,MySQL,SSHBook management system based on SSH frameworkAbstractNow that we have entered the information age, an
4、d with the rapid development of information technology, the Internet has now become an indispensable part of our work and daily life. The development of computer technology not only improves our work efficiency and provides great convenience for daily work, but also greatly improves our quality of l
5、ife. It has become a trend to use computers instead of humans to process data. The traditional way of manually managing book resources and readers borrowing information is not only a waste of time and manpower, but also easy to cause data loss and confusion. A library management system based on comp
6、uter technology came into being in this context.The book management system is mainly to help librarians to realize the purpose of managing book information and reader borrowing information through computers. The traditional manual management information is handed over to the computer for processing,
7、 and the computer adds relevant information, Modify, query and delete operations; ordinary users can also borrow and return books and query their own book borrowing information through the book management system. The library management system is designed and developed based on the Java SSH framework
8、. The background uses Java to add, delete, modify, and check operations. The front end uses JSP to build pages, and uses MySQL as the database system for related data storage. The system provides a simple platform for librarians to manage book information, reader information and borrowing informatio
9、n, which reduces the workload of librarians and improves the efficiency of librarians, and also facilitates Operation, adapted to the development of the times.Keywords: Book Management System,Java,MySQL,SSH目录1.前言11.1课题研究现状及意义11.2研究目标及内容12.可行性分析22.1经济可行性22.2技术可行性22.3操作可行性23.相关技术与环境23.1软件开发环境33.2 Java
10、介绍33.3 MySQL介绍43.4 SSH框架介绍43.5JSP介绍54.数据库设计54.1数据库需求分析54.2数据库设计64.2.1用户信息表64.2.2图书信息表74.2.3图书借阅表74.2.4借阅历史记录表85.模块设计与实现85.1需求分析85.2注册登录模块95.2.1用户注册95.2.2管理员注册105.2.3用户登录115.2.4用户注销135.3用户信息管理模块155.3.1查看用户信息155.3.2修改密码155.3.3修改个人信息165.4图书管理模块175.4.1新增图书175.4.2查询图书185.4.3修改图书185.4.4删除图书195.5图书借阅模块205.
11、5.1图书借阅215.5.2图书归还225.5.3图书借阅记录查询236.系统测试257.总结26参考文献27谢辞28北京理工大学珠海学院2020届本科生毕业设计1. 前言1.1课题研究现状及意义如今每天都会有大量的图书和期刊出版,导致图书馆中书籍的数量大幅度增加,而图书馆的工作人员需要对大量的图书信息进行管理,更新图书信息,处理读者图书借阅的相关信息及他们详细的个人信息,在协助读者进行图书借阅与归还操作的同时,还需要记录下读者借阅与归还图书时的相关信息,这时候传统的人工处理方式的弊端也逐步显现:需要大量的人力分配到各个岗位进行管理,需要管理的数据信息量大到让人难以承受,费时费力,且通过人工管
12、理的数据信息容易丢失,并经常会出现信息交叉错乱的情况。我们现在已经进入到互联网时代,通过计算机代替人工来处理数据已经成为趋势,所以图书馆的管理工作也应该顺应互联网技术发展的步伐。在计算机中最显著的特征是数据存储量大、数据处理速度快且数据保存稳定持久,它可以及时、快速、准确地处理数据信息。在图书管理工作中通过使用较为先进的计算机技术对图书信息、读者信息和图书借阅记录信息进行动态化、规范化的管理,这样在提高图书管理员的工作效率,减少在图书管理工作中的人力投入的同时,还可以让图书馆中的图书资源得到更加充分的利用,使得图书管理具备更大的灵活性和实用性,这是在图书管理工作中实现数字化、精细化和科学化管理
13、的一种方式,也是让图书管理工作朝着现代化、智能化方向前进的一种手段。计算机技术的发展和应用为处理大量的数据信息,长时间保证数据和保证数据的安全提供了可能。通过计算机对相关数据信息进行管理,使得图书管理和读者借阅管理分离的传统图书管理方式得到了改变,实现了在图书馆相关信息管理上的规范化和系统化。图书管理系统以计算机为操作工具,在网页上运行,可以把图书信息和读者借阅信息保存在数据库中,通过计算机可以快速地对图书数据进行增删改查操作,而读者也可通过该系统简化图书借阅的流程,在方便工作人员的管理,提高工作效率的同时,也方便的读者对自己的借阅信息进行了解。1.2研究目标及内容图书管理系统主要是通过将传统
14、的人工保存方式管理的图书信息和读者借阅信息保存在计算机的数据库中,在管理员方面可以实现对图书信息的管理及对读者借阅记录和用户相关信息的查询;在用户方面实现对个人信息的管理,对图书的借阅和归还以及对图书借阅记录的查询。目的是在图书管理员方面降低他们的工作量,提高工作效率,在用户方面可以方便用户对图书进行借阅与归还操作和随时随地地查询自己的借阅记录。主要研究内容是通过查阅资料,完成对图书管理系统的数据库的设计,并为用户和管理员分别开发页面,在实现图书管理系统中的图书管理,图书借阅和相关信息查询等基础功能的同时也保证角色权限的控制和信息的安全。2. 可行性分析2.1经济可行性该图书管理系统是基于Ja
15、va进行开发设计的,不需要再购买设备进行开发,开发时使用的软件也都是免费的,且该系统是基于web网页进行各个操作,对计算机系统配置的要求并不高,所以该系统的开发成本和日后的维护费用并不高。同时该系统简化图书管理员的操作,减轻了图书管理员的工作负担,也降低了在图书管理中人力投入。在经过综合比较后可以发现该系统具有经济可行性。2.2技术可行性该图书管理系统使用了基于Java的SSH框架,其中后台程序使用了Java语言进行开发,与其他编程语言相比,Java语言具有面向对象、调试简单、可移植性高等多个特点;而在前端页面开发方面则采用了JSP、CSS、JavaScript等技术进行布局设计和部分输入框的
16、输入控制,页面布局简洁美观,操作友好简单,使用方便,而且SSH框架的使用历史悠久,在此之前的许多网站都是基于SSH框架进行开发,在开发Web项目时使用SSH框架是一种轻量级的很好的解决方案,与其他框架相比SSH框架的使用较为成熟,所以该系统具有技术可行性。 2.3操作可行性该图书管理系统前端页面主要是通过使用JSP、CSS、JavaScript等技术进行布局设计,所有操作都是在网页上完成,无需另外下载安装软件,界面友好,操作简单。图书管理员可以通过该系统对图书资源信息进行更新,对用户信息进行管理,而用户也可以通过该系统方便快捷地对图书进行借阅和归还操作,所以该系统具有操作可行性。3. 相关技术
17、与环境3.1软件开发环境Myeclipse版本: Myeclipse 2016MySQL版本:MySQL 8.0.16Tomcat版本:7.0.56Jdk版本:1.8.0_2013.2 Java介绍Java是一门高级的、面向对象的程序设计语言,在如今众多的编程语言中占据了比较大的市场份额。Java主要分为三个版本,分别为Java SE,Java EE和Java ME。其中Java SE是标准版的Java,其他版本的Java都是在Java SE的基础上进行修改的,其主要作用是用于一般的Java程序(如桌面应用程序)的开发;Java EE是企业版的Java,此版本的是在Java SE的基础上加上了
18、各种应用框架以便程序的开发,主要是在企业上用于开发和部署可移植且安全的服务器端分布式网络应用程序(如Web应用);最后的Java ME是平台微型版的Java,它主要用于移动设备和嵌入式设备上的软件开发。在此图书管理系统中用的是Java EE版本。 Java的特性如下:(1) 面向对象:面向对象是Java语言的基础。在Java语言里一切皆对象,即将所有的问题都看作是两个不同对象之间的交互,并将所有的对象都抽象成了属性和方法的集合。(2) 跨平台:Java中的虚拟机机制(即Java Virtual Machine,简称JVM)实现了Java语言不需要再重新编译即可以在不同的平台上可以正常运行。而正
19、是因为Java中有了这个虚拟机机制才保证了Java语言的强大的可移植性。(3) 健壮性:Java语言中的异常处理和垃圾回收机制等都是其健壮性的重要体现。(4) 多线程: Java可以支持同一个进程内的多个线程同时进行工作以提高程序的执行效率,而且还提供了多线程之间的同步机制以保证线程的安全。(5) 解释执行:Java程序在安装有Java环境的平台上运行时会先通过编译器将由Java语言编写的源代码编译成字节码,而这些字节码会被Java虚拟机中的解释器解释成计算机所认识的机器码,从而保证程序可以在安装有Java环境的操作系统上正常运行。(6) 简单性:因为Java语言是从C+语言发展起来的,所以在
20、编程使用的语法上Java语言与C+语言较为相近,但是与C+不同的是Java语言丢弃了许多(例如指针等)在C+中难以理解的特性。同时因为Java加入了垃圾回收机制,所以程序员在开发程序的过程中不用再去关心程序中的内存分配及垃圾回收等烦人的问题,简化了编程过程的同时也提高了编程效率。3.3 MySQL介绍数据库是一个系统的保存数据的核心部分,常用数据库管理系统包括MySQL、SQL Service和Oracle等,而在本系统的开发中则选择了MySQL作为数据库。MySQL是目前在WEB应用程序开发方面较为流行的关系型数据库管理系统(即Relational Database Management S
21、ystem:简称RDBMS)的应用软件之一。MySQL的特点是可以跨平台且开源,在支持Linux和Windows等多种常用的操作系统的同时,也为C、C+、Python、Java、PHP等多种常用的编程语言都提供了API接口供它们使用,其数据处理量大且处理速度快,服务稳定,软件体积小,方便维护。与其他大型系统相比,图书管理系统中的数据处理量并不算大,而且MySQL与其他数据库管理软件相比,其用户使用量较大,在遇到问题时能够及时寻求解决方法,所以选择MySQL作为图书管理系统的数据库是一个不错的选择。3.4 SSH框架介绍SSH框架是一个集成框架,其结构包括4层:即实体层,控制层,业务逻辑层和数据
22、访问层。其中实体层主要是用Java语言将数据库中所用到的字段封装成一个类,这样在传参时只需要传一个类即可;数据访问层负责由hibernate来与数据库进行连接,通过使用hibernate语句(HQL语句)实现对数据库表的数据进行读写操作;业务逻辑层主要是对业务逻辑的进行处理,其工作过程主要是通过调用数据访问层来实现业务数据的持久化;控制层则是通过struts2来与前端网页进行数据交互,以及调用业务逻辑层进行业务逻辑处理。总的来说SSH框架主要由struts2+spring+hibernate三部分组成:(1) struts2是一个基于MVC设计模式的、用于开发Java EE应用程序的web应用
23、框架,MVC设计模式:即在应用程序开发过程中将应用分成模型(Model)、视图(View)和控制器(Control)三部分分别进行设计。struts2主要起到了控制作用,负责接收网页中通过表单提交的数据,在action中将接收到的数据进行处理,最后再将最后的处理结果返回到对应的网页中。struts2以WebWord为核心,通过采用拦截器的方式来处理用户的请求。(2) spring是一个开源且轻量级的容器框架,它最大的特点就是控制反转(IoC)和面向切面(AOP)。在SSH框架中,spring在SSH框架中主要是起到了控制struts2框架中的action对象和service类的作用,以达到解耦
24、的目的,简化了程序员的开发流程。(3) hibernate是一个开源的对象关系映射框架(Object Relational Mapping,简称ORM),在SSH框架中其主要作用是与数据库进行连接并对数据库的数据进行读写操作。为了简化在数据访问层中对数据进行操作时重复出现的代码,hibernate框架对传统的通过JDBC来访问数据库的代码进行了深度的封装;提供了从Java类到数据库表的映射从而达到直接存取Java对象的目的,降低了数据访问过程中的复杂度;同时把直接对数据库进行的操作转化成了对持久化对象的操作,提高了程序员的编程效率。3.5 JSP介绍JSP(Java Server Pages)
25、是一种动态的网页开发技术,它可以根据服务器端的程序来动态生成不同的页面。JSP页面主要是通过引入JSP标签的方式达到在普通的HTML网页中插入Java的代码的目的,实现HTML代码和Java代码共存,所以JSP技术和Java语言一样具有跨平台运行的特性,其主要作用是在Java Web程序设计中实现前端的用户操作界面的部分。其特点是能够方便的与服务器进行数据交互,能够访问数据库。其工作过程是web服务器在遇到JSP的网页访问请求时,会先执行其中的程序片段,然后将其最后的执行结果以HTML的格式返回给用户客户端,其中所有的程序操作都是在服务器端进行执行,而从服务器端返回到客户端的只是最后执行得到的
26、结果,所以使用JSP技术开发图书管理系统的前端页面这种方式对用户计算机的配置要求很低。14. 数据库设计4.1数据库需求分析数据库是图书管理系统中最重要的一部分,所以在设计数据库时,需要先确定各张表中所需要用到的字段,以及确定表与表之间的外键从而实现它们之间的表关联。该系统主要分为用户注册登录模块,用户信息管理模块,图书管理模块和图书借阅模块,下面是在该系统中使用到的表的相关描述及表与表之间的联系:(1) 用户信息表:该表来保存用户的账号密码等信息,同时也保存了用户信息管理模块中管理的用户基本信息,包括用户id(主键),用户名,密码,用户类型(普通用户或管理员),真实姓名,联系电话,生日,上次
27、登录时间,注册时间和逾期次数;(2) 图书信息表:该表用来保存图书的基本信息,包括图书id(主键),图书名称,类型,作者,出版社,总数量,剩余数量,被借阅总次数,新增者,图书描述;(3) 图书借阅表:该表用来保存用户借阅图书后尚未归还记录的基本信息,包括借阅记录id(主键),借阅者姓名,图书名称,借阅日期,最晚归还日期,图书id,用户id。其中图书id是图书信息表的外键,用户id则是用户信息表的外键,在对图书借阅表进行操作时可以通过图书id和用户id两个外键来分别对图书信息表和用户信息表的相关关联信息进行查询;(4) 借阅历史记录表:该表用来保存用户归还图书后记录下的相关信息,包括借阅记录id
28、(主键),借阅者姓名,图书名称,借阅日期,归还日期,图书id,用户id。其中图书id是图书信息表的外键,用户id则是用户信息表的外键,在对借阅历史记录表进行操作时可以通过图书id和用户id两个外键来分别对图书信息表和用户信息表的相关关联信息进行查询;4.2数据库设计根据我们上方的数据库需求分析,我们可以将图书管理系统中数据库表的表结构列出:该图书管理系统的数据库主要由四张表组成,分别是用户信息表,图书信息表,图书借阅表和借阅历史记录表。下面是各个表的详细设计:4.2.1用户信息表表4.1 用户信息表序号字段名称字段类型长度是否允许为空备注1uidint11否主键,用户id2usernameva
29、rchar50否用户名3passwordvarchar50否密码4usertypevarchar10否用户类型5actualnamevarchar50是用户真实姓名6phonenovarchar11是联系电话7birthdaydatetime是生日8lastlogintimedatetime是上次登陆时间9registertimedatetime是注册时间10numberofoverdueint11是逾期次数4.2.2图书信息表表4.2 图书信息表序号字段名称字段类型长度是否允许为空备注1idint11否主键,图书id2namevarchar50否图书名称3typevarchar5否图书类型4
30、authorvarchar50否作者5publishvarchar50否出版社6amountint11否剩余数量7totalamountint11否总数量8principalvarchar50否新增者9descriptionvarchar255否图书描述4.2.3图书借阅表表4.3 图书借阅表序号字段名称字段类型长度是否允许为空备注1idint11否主键,借阅记录id2namevarchar50否借阅者姓名3booknamevarchar50否图书名称4borrowdatedatetime否借阅日期5latestreturndatedatetime否最晚归还日期6bookidint11否图书信
31、息表外键,图书id7useridint11否用户信息表外键,用户id4.2.4借阅历史记录表表4.4 借阅历史记录表序号字段名称字段类型长度是否允许为空备注1idint11否主键,借阅历史记录id2namevarchar50否借阅者姓名3booknamevarchar50否图书名称4borrowdatedatetime否借阅日期5returndatedatetime否归还日期6bookidint11否图书信息表外键,图书id7useridint11否用户信息表外键,用户id5. 模块设计与实现5.1需求分析图书管理系统主要分为注册登录模块,用户信息管理模块,图书管理模块,图书借阅模块等四大模块
32、。注册登录模块和用户信息管理模块主要是对用户信息表进行操作;图书管理模块主要是对图书信息表进行操作;图书借阅模块主要是对图书借阅表和借阅历史记录表进行操作,同时可通过图书id和用户id这两个外键分别对图书信息表和用户信息表进行操作。图5.1 系统功能图5.2注册登录模块注册登录模块是图书管理系统最重要的一个模块,其他模块都是需要在用户正常登录后才可以进行正常操作,所以该模块直接影响到整个图书管理系统的安全性。其中为了实现用户和管理员的权限分配功能,系统为管理员和用户两个角色分别开发了不同的主页,在登录时会对登录用户的用户类型进行判断,不同的用户类型在登录成功后会跳转到各自的主页中。5.2.1用
33、户注册这部分主要是实现用户注册功能,用户在注册时需要完整输入所有信息。在点击提交按钮后系统会先在前端页面中通过JavaScript来检查输入密码是否合法(密码首位必须是大写,密码总长度需要大于6位),两次输入的密码是否相同,若检查不通过则会拒绝该表单提交并提示错误信息,检查通过后则会将表单中的信息提交到后台,在后台中会将输入的注册用户名与数据库中的数据进行比对,如果存在相同的用户名则会拒绝该注册操作,并将错误信息返回到前端页面中显示;不存在相同的记录则将表单中的信息保存到数据库,此时后台会记录下此时的时间一同保存到用户表的注册时间中,前端页面则会提示注册成功。另外为了区分用户和管理员两个不同的
34、角色,在用户注册时,用户注册页面中会有一个隐藏输入框默认给usertype赋值(usertype赋值为1),用户无法对其修改,保证了在用户注册页面提交注册的用户类型只能为普通用户。图5.2 用户注册页面图5.3 注册成功5.2.2管理员注册这部分主要是实现管理员注册的功能。为了保证普通用户无法通过该注册页面注册管理员账户,因此将管理员注册设置为管理员的权限,即只有通过使用管理员账号登录系统后才能正常访问该页面,而普通用户则无法访问该页面。管理员注册只需输入用户名和密码即可,其他字段无需输入,输入的密码也会通过JavaScript进行验证,验证通过后即可将信息提交到后台进行用户名验证。在管理员注
35、册时,管理员注册页面中会有一个隐藏输入框默认给usertype赋值(usertype赋值为0),用户无法修改,保证了在管理员注册页面提交注册的用户类型只能为管理员。图5.4 管理员注册图5.5 管理员注册成功5.2.3用户登录此部分主要是实现了用户的登录功能。用户登录和管理员登录使用的是同一个登陆页面,在登陆时除了输入用户名和密码外还需要选择用户类型,选择管理员时会给usertype字段传0,选择用户时会给usertype字段传1。在输入用户名、密码和选择用户类型后,点击登录后会将所有信息提交到后台进行验证。验证失败会拒绝用户登录并将错误信息返回到前端显示;验证成功后,用户部分会将用户的id和
36、真实姓名保存到session中,管理员部分则会将管理员的id和用户名保存到session中,并根据用户类型返回不同的字符串,在struts.xml配置页面根据返回的不同的字符串来跳转到不同的主页,实现了用户和管理员的权限分配。在打开主页时会先检查session中是否有值,session中有值则代表用户已登录,可以正常访问;若session中没有值则代表用户尚未登录,通过JSP域名访问该页面后会自动跳转到登陆页面,另外使用了struts的拦截器对action进行登录拦截,即用户在未登陆时通过action路径来访问页面会进行拦截并自动跳转到登录页面,防止用户信息泄露和数据被非法修改。图5.6 管理
37、员登录图5.7 管理员登录成功图 5.8 用户登录图5.9 用户登录成功在主页中会有退出登录按钮,在点击按钮后后台会将session中的值清空并自动跳转到登陆页面,实现了退出登录的功能。图5.10 退出登录5.2.4用户注销此部分主要是实现了用户注销的功能。用户在点击注销用户按钮后会在后台检查该用户是否有图书未归还的记录,有图书未归还记录则拒绝注销,没有则会直接删除该用户并自动跳转到登陆页面,实现用户账户注销的功能。图5.11 存在图书未归还记录图5.12 点击注销用户图5.13 用户注销失败图5.14 用户注销成功5.3用户信息管理模块5.3.1查看用户信息在使用管理员账号登录后,在管理员的
38、主页点击用户管理,可以查询到有关所有用户的信息并以分页形式显示,在此页面中可以查询到用户的详细信息和该用户的图书未归还记录。图5.15 管理员查询所有用户5.3.2修改密码用户在点击修改密码按钮后,会跳转到密码修改页面,在此页面中修改密码时需要输入旧密码进行验证,验证通过后才允许修改密码。新密码也会通过JavaScript来验证密码合法性和两次输入的密码是否相同,在密码修改成功后用户会自动退出登录并跳转到登陆页面。图5.16 密码修改前图5.17 修改密码图5.18 密码修改后5.3.3修改个人信息用户点击修改个人信息按钮后,会跳转到个人信息修改页面,并将数据库中的个人信息查询并显示出来。在此
39、页面中只有联系电话可以进行修改,其他信息都是只读状态,用户无法修改。图5.19 修改个人信息图5.20 修改成功5.4图书管理模块图书管理模块主要是实现对图书信息进行管理的功能,在这部分图书的新增、修改、删除只能由管理员进行操作,用户无法操作,保证了图书信息的安全性。其主要分为新增图书,查询图书,修改图书和删除图书。5.4.1新增图书此部分主要是实现新增图书的功能,该页面只有管理员能够打开,用户无法访问该页面。在此页面中,所有信息都需要输入,通过JavaScript来验证是否全部输入,没有全部输入则提示错误。需要注意的是在新增时图书剩余数量是根据输入的总数量来自动生成,无法修改。在全部信息正确
40、输入后点击提交按钮即可实现图书的新增操作,图书新增完成后会自动跳转到图书查询页面,在此页面中可以以分页形式查询到数据库中所有的图书信息。图5.21 新增图书图5.22 新增成功5.4.2查询图书此部分主要是将所有的图书信息以分页形式显示到页面中,在图书查询页面可以通过按输入的不同条件进行查询,查询成功后将符合条件的记录显示到页面中。在按条件查询并进行翻页时,系统会将输入的查询条件通过路径形式传递到后台,后台获取到查询条件后则按相应的查询条件进行搜索,最后将符合条件的记录返回到前端页面中。图书查询功能主要分为用户查询和管理员查询,用户查询图书的页面在图书信息后会有借阅按钮,选择某一条图书记录后的
41、借阅按钮后可以对该图书进行借阅;管理员查询图书的页面在图书信息后会有编辑按钮,选择某一条图书记录后的编辑按钮后可以对该图书进行编辑。图5.23 用户查询图书列表图5.24 管理员查询图书5.4.3修改图书此部分主要是实现对图书的部分信息进行修改的功能。在使用管理员账号登录后才可对图书信息进行编辑,保证了图书信息无法被用户修改。在图书列表中选择其中的一条记录,点击编辑按钮即可进入到图书编辑页面对部分图书信息进行修改。其中剩余图书数量为只读,其值的改变主要是根据修改后的图书总数量与尚未归还的图书数量进行计算得出;图书总数量的范围也做了限制,即图书总数量不得少于尚未归还图书的数量,保证了图书数量的准
42、确性。图5.25 管理员修改图书信息5.4.4删除图书此部分主要是实现对图书进行删除的操作。在使用管理员账号登录后才可对图书进行删除,保证了图书无法被用户删除。在图书列表中选择其中的一条记录,带年纪编辑按钮进入到图书编辑页面,在图书编辑页面中有删除按钮,在点击删除按钮后会在后台进行判断该书是否存在未归还记录,如果存在未归还记录即拒绝该删除操作,不存在未归还记录即可正常将图书删除。图5.26 图书删除失败图5.27 删除图5.28 删除成功5.5图书借阅模块图书借阅模块主要是实现图书借阅归还和借阅记录查询功能,在这个模块中的图书借阅归还功能主要是由用户使用,管理员主要是可通过这个模块查询所有用户
43、的图书借阅记录信息。5.5.1图书借阅此部分主要是实现用户的图书借阅功能。在使用普通用户账号登录系统后,在图书列表中选择其中一条图书记录,点击借阅按钮即可跳转到图书信息页面查看图书的详细信息。在此页面再次点击借阅按钮后会将数据提交到后台,此时后台会先在数据库中进行检查该用户是否有逾期未归还的记录,存在逾期未归还的记录则提示用户需先归还逾期的图书才可再次借阅图书;另外后台还会检查该用户是否有同一本书尚未归还的记录,若两部分检查都通过后即可正常进行图书借阅操作,此时后台会将图书信息表中的剩余数量减1;将图书信息表中的总借阅次数加1,图书的总借阅次数主要是为了给图书热度排行提供数据;通过记录下用户i
44、d和图书id作为该借阅记录的外键,以便对用户信息表和图书信息表进行连接;同时自动记录下当前的系统时间,并以当前时间60天后的时间作为最晚归还时间,如果用户在超过最晚归还时间后尚未归还图书,系统则会在用户归还该图书后在用户信息表中将该用户逾期次数记录加1。图5.29 图书借阅图5.30 借阅成功图5.31 存在逾期记录时借阅失败图5.32 存在相同的借阅记录5.5.2图书归还此部分主要是实现用户归还借阅的图书的功能。在使用普通用户账号登录了系统后可以点击图书归还按钮查询所尚未归还的图书的记录,另外还有一个查询逾期记录的按钮,点击该按钮后可以查询出该用户逾期未归还的图书的记录。在查询出未归还图书的
45、记录后,点击归还图书即可执行图书归还操作。此时后台会将该图书在图书信息表中的剩余数量加1,删除在图书借阅表中将该记录进行删除,并在历史借阅记录表中记录下详细信息,包括借阅时间,归还时间,用户id和图书id,通过用户id和图书id可以查询到有关该用户和该图书的全部信息;需要注意的是如果该记录已经逾期,在图书归还时还会在用户信息表中将该用户的逾期次数字段的数值加1。图5.33 图书归还图5.34 归还成功5.5.3图书借阅记录查询此部分主要是实现查询图书借阅记录的功能,包括未归还图书记录和历史借阅记录。借阅记录查询分为管理员查询和用户查询,主要是通过给管理员和用户分别设计查询页面来实现两个不同角色
46、的查询功能。管理员拥有最高的权限,可以查询到所有用户的图书借阅记录,而用户查询只能查询到自己名下的图书借阅记录,保证了数据的安全。在查询图书记录时,可以通过用户id和图书id两个外键分别从用户信息表和图书信息表中将该用户和该图书的详细信息查询出来并显示在页面中。图5.35 用户查询未归还记录图5.36 用户查询历史借阅记录图5.37 管理员查询未归还记录图5.38 管理员查询历史借阅记录6. 系统测试测试在开发阶段对于一个系统来说必不可少,其目的是为了验证系统的各个功能是否能成功实现,及验证页面控制是否能够达到预期的效果,在无法达到预期效果时可以寻找出问题所在并将其解决,一步步将系统完善。本次测试的主要内容如下:(1) 测试各个模块的功能是否能