论文技巧大全-基于SSH框架的图书管理系统的开发与实现-CNKI知网查重网站

论文技巧大全-基于SSH框架的图书管理系统的开发与实现

2021-06-15 09:57:30
作者:杭州千明

  随着现代网络技术的快速发展和我国互联网的大量普及,我国的信息管理行业的发展得到了新的趋势,对于现在的网络信息管理模式也逐渐走向了成熟的道路,所以各个企业也快速推出了相应的网络管理系统。21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已经由低层次向高层次逐步发展,由原来的感性认识向理性认识逐步提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。

  论文主要是对图书信息管理系统进行了介绍,包括课题研究的现状,还有涉及的相关开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个系统的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对图书信息管理系统进行了一些具体的测试。

  本文以java和HTML5为主要开发技术,实现了一个图书信息管理系统。图书信息管理系统的主要使用者分为管理员和用户,主要实现功能包括:前台:借阅信息、收藏夹、资料修改、公告信息、借阅排行、各类图书,管理员:读者管理、公告信息、友情链接、书架管理、图书分类、出版社管理、图书管理、订购管理、借阅信息等功能。通过这些功能模块的设计,基本上实现了整个图书店信息管理的过程。

  具体在系统设计上,采用了SSH的结构,用树状的结构对数据进行存储,同时,也使用java技术在动态页面上进行了设计,后台上采用SQL Server数据库,是一个非常优秀的图书信息管理系统。

  网络技术的快速发展从根本上更改了世界各组织的管理方式,自二十世纪九十年代开始,我国的政府、企业事业等单位就设想可以通过互联网系统来进行管理信息。由于以前存在各方面的原因,比如网络普及度低、大部分用户不接受、互联网的相关法律法规也不够完善、开发技术也不够成熟等,阻碍了互联网技术在各大机构中的发展速度。进入二十一世纪以后,我国经济有了快速的发展,限制机构管理的各个难题逐一被解决,国内各大机构都逐步加入到了电子信息化的管理模式中来。

  以往和图书相关的信息的管理,大多都是工作人员手工统计,由于图书资料的更新具有快速的特点,导致人工统计的方式不但时效性低,而且在需要查找和变更的时候很不方便。如上所述,针对诸如传统模式下工作人员效率低下、借阅书籍过于依赖图书借阅证以及图书馆占座现象之严重,若还是按照传统的管理办法来解决,想必无法顺利的达成[1]。随着科学技术的不断进步,技术的成熟,计算机的信息化管理也日新月异的发展,社会也已经对此有了深刻的认识,计算机的功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。信息化是提高图书资料管理质量的一项重要手段,提高图书资料的信息化管理水平,应该从以下几个方面进行考量:应该完善图书资料的管理体系,强化图书资料管理的工作措施,在图书馆里的一体化、标准化以及多元化的工作模式下实现高效的图书资料的管理工作。遵循着这些基本的要求和原则,本系统利用网络沟通、计算机信息存储管理,实现了传统图书管理方式所无法替代的优点,基本实现了对图书信息的信息化管理。比如计算检索速度特别快、可靠性特别高、存储容量特别大、图书的整体性存储、保密性特别好、可保存时间特别长、成本特别低、信息更新快速、图文资料共享等。在工作效率上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了网络,图书的各方面的管理都会更加的科学和系统,更加的规范和简便。

  第二节国内外的研究现状

  随着计算机网络在人们的生活生产和日常工作中的不断渗透,人们的生活、工作、学习的方式也在慢慢发生变化。传统的图书相关信息的管理方式一般都采取人工的方式,信息的获取、整理、修改、存储等工作还停留在人工阶段。这种方式一方面需要花费大量的人力、物力和金钱,交互起来比较困难,而且会浪费大量的时间;另一方面是对用户等信息的管理,特别是随着用户数量的递增,查询和修改起来特别困难;最后由于用户等其他信息的不断增加,信息的存储也成为了难题。

  一些发达国家,网络技术发展的比较快,已经很大程度上完成了从人工到计算机管理的转变。我国计算机应用起步比较晚,而且发展区域相对不平衡,还有很多地区或单位使用传统的方式进行管理,但是目前和计算机相关的技术发展速度较快,包括网络也已经逐渐普及到全国各处,并且很多单位和用户也开始慢慢尝试和接触网络管理系统。纵观这些系统主要有以下几个特点:

  (1)先进性:实现网络化管理。

  (2)通用性:同一行业基本都能使用。

  (3)方便性:通过网络就能完成管理工作。

  (4)及时性:信息更新及时。

  (5)可扩展性:可根据需要进行模块的增加。

  (6)安全性:对单位、用户等信息进行加密。

  截至今日,互联网已经深入人们的生活,智能手机、笔记本电脑、平板电脑等已经是人们获取信息的最主要工具,这是一个沟通无限的时代,因此,利用网络来进行图书的管理也成为大势所趋,所以,开发一个图书信息管理系统是很有必要的。

  第三节本课题主要工作

  一开始,本文就对系统内谈到的基本知识,从整体上进行了描述,并在此基础上进行了系统分析。为了能够使本系统较好的、较为完善的被设计实现出来,就必须先进行分析调查。基于之前相关的基础,在功能上,对新系统进行了细致的分析。然后通过详细的分析,进行系统的设计;其次,系统在实施的可行性方面,该系统选择了java技术来进行主要的开发和设计,在数据存储方面,采用了SQL Server数据库来进行存储设计。由于java技术和SQL Server数据库都已经是非常成熟的,因此无论在各个方面,都非常的可靠安全和实用。最后对系统进行测试完善并发布。

  第四节主要开发技术介绍

  一、开发语言

  Java语言是在二十世纪末由Sun公司发布的,而且是公开源代码的,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之一,和C语言、C++语言等不同,从发布初期到现今,可以说有将近20多年的发展历史,已发展成为人类计算机编程语言发展史上的一个深远影响,现在Java语言已经被广泛使用,堪称世界第一语言。Java Development Kit(JDK)称为Java开发工具包或Java开发工具[2]。JDK是整个java开发的核心,它不仅包含了JAVA的运行环境,还包含了很多JAVA必备的工具。

  Java语言本身就具有非常多种的特性:(1)跨平台的无关性;(2)面向对象;(3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,(6)代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的优势,以并且未来发展的前景非常开阔,可以广泛的应用在个人笔记本电脑、大数据、大型游戏等方面的开发。

  首先,Java语言具有面向对象的特性,并且易于程序员理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。利用面向对象的编程语言的基本特征来解决软件开发中的实际问题,为有效软件开发提供了一定的技术支持。

  其次,Java语言具有很好的跨平台无关性。如果所编写出来的应用程序是Java语言编写的,那么就没有必要再使用编译器来修改程序代码,就可以直接在任何计算机系统中进行配置以及运行,比如在Windows系统可以运行,在Linux系统中也可以运行,也就是经过一次编译,可以到处运行所编写的应用程序,所以Java语言具有卓越的可移植性,可以很好的进行跨平台的实现。

  二、SQL Server数据库

  SQL Server数据库是一个多用户、多线程的服务器,采用SQL的数据库,数据库管理系统(DBMS)是基于SQL的客户以及SQL服务器模式的关系,它的优点有很多,强大的功能、操作的简单、管理的方便、可靠的安全性、运行速度比较快、多线程多用户、跨平台性、完全网络化、良好的稳定性等,非常适合Web站点或者其他的应用软件在数据库后端的开发。此外,还可以利用许多语言,会员可以编写和访问SQL Server数据库的程序。SQL Server数据库也是开放源代码的,诸多开发者越来越喜欢使用SQL Server关系数据库,应用范围也被推而广之。正是由于它的速度快和易用性,Web站点或应用软件的数据库后端的开发也都在使用它。

  SQL Server数据库它有很多的优点,例如它在操作上能够让人更加通俗易懂、功能强大、信息储存量高等优点。所以被人们广泛应用,对于SQL Server数据库来说它一般主要是对数据进行编码和查询,而且在很多的设计当中都应用到了SQL Server数据库,在此过程当中我们可以对常规的数据进行查询和组合,所以我们在进行使用SQL Server数据库的时候只要编写一小段的数据就能实现相应的功能。数据库,就是数据存储的储藏室,只不过这些数据是存储在计算机上的,是虚拟的,而不是真正现实世界中的储藏室,数据的存放是按照固定的格式进行存放,而不是无序的,那么有关它的定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要包括数据表的建立,数据存储、修改和增加数据,为了使数据库系统能够正常运行,相关工作人员进行的管理工作。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。

  三、B/S结构

  B/S架构采用的是通过用户对浏览器执行请求操作后,由服务器进行响应的工作流程[3]。B/S(BROWSER/SERVER)程序架构方式是使用电脑中安装的各种浏览器来进行访问和使用的,相比C/S的程序结构不需要进行程序的安装就可以直接使用。BROWSER/SERVER架构的运行方式是在远程的服务器上进行安装一个,然后在任何接入互联网的电脑上访问和使用。BROWSER/SERVER架构的开发方式给用户带来了极大的便利,在任何时间和地点都可以使用开发的程序系统。

  在B/S的结构中,用户可以在任何可以上网的地方访问和使用系统网站的功能,没有地域和时间等方面的限制,B/S结构是把程序完整放置到计算机网络的服务器上,通过计算机互联网给用户提供远程的网络服务。在三层体系结构的B/S系统中,通过浏览器,会员可以对很多服务器发出请求,B/S系统会很大程度的降低工作量,用户只需要安装运行较少的客户端即可,大量的工作将由服务器承担,另外,服务器也完成包括访问数据库,执行应用程序的工作等等。因此,通常情况下B/S结构程序的后台都要有数据库的支持,才能实现其功能[11]。

  B/S结构主要有三层,分别为数据层、控制逻辑层和视图层。用户通过视图层,让控制层调用数据层的数据,从而达到整个访问过程。三层相互独立,维护方便,使用安全,三层有互相调用,提高效率。

  第二章系统分析

  所谓的系统分析就是,需求人员通过与客户之间进行沟通后,所获取的与开发项目有关系的信息,然后把这些相关信息通过需求说明书的方式展示给用户和开发人员。在软件功能发展的历史长河中,很长时间,特别是最开始的时候,系统需求分析的重要性并不被人们所认同,例如当时美国IBM公司为英国电信公司开发一套信息管理系统,在需求不明确的情况下开始开发,最初的工期为一年,由于需求获取不清晰而导致工期推迟了半年多,造成了不可弥补的巨大损失。我们很多软件公司也存在这种情况,边需求,边开发,甚至与客户没有沟通清楚的情况下,直接照搬同类型的项目进行部分更改,导致到了系统验收的时候,重新更改,造成了人力、物力的极大浪费。而导致这一切后果的原因就是需求获取不及时、不清楚、不全面。

  目前随着计算机技术和Internet的发展,人们的生活、办公方式也在不断的发生变化,而学校图书馆也要为了提高办公效率做出相应的调整[4]。图书信息管理系统主要目标是实现网上图书的相关信息管理服务。在确定了目标后,我们从以下四方面对能否实现本系统目标进行可行性分析。

  一、技术可行性

  该图书信息管理系统主要采用了Java语言作为主要开发技术,以SSH为框架结构,SQL Server为数据库,采用树状存储结构存储相关的图书信息数据。对于程序的开发要求具备完整的功能,且使用简单的特点,并建立一个数据完整、安全稳定的数据库。Java语言和SQL Server数据库的成熟度也已经非常高,并且图书信息管理系统的开发具有很高的可行性,而且开发人员掌握了一定的开发技术,所以该系统的开发具有可行性。

  二、操作可行性

  图书信息管理系统的登录注册的界面简单并且易于操作,采用常见的界面窗口来作为登录界面,通过计算机进行访问操作,会员只要平时使用过计算机都能进行访问操作。此系统的开发采用java语言开发,基于SSH结构,这些开发环境使系统在各个方面都更加完善。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发,并且具有良好的操作可行性。

  三、经济可行性

  该图书信息管理系统是基于SSH模式,采用SQL Server数据库储存数据,所要求的硬件环境和软件环境,在市场上都很容易购买,因此,在前期的准备工作上的经济开销小,并且能够高质量的实现。程序的开发主要是管理系统的开发和维护。所以程序在开发人力、财力上面的要求不高,而且此系统不是很复杂,开发周期短,在经济方面具有较高的可行性。

  四、合法可行性

  该图书信息管理系统完全是由自己开发和设计的管理系统,具有很大的实际意义。因为无论是软件还是数据库,采用的都是开源代码,因此这个系统的开发和设计,并不存在侵权等问题,在法律上完全具有可行性。

  综上所述,图书信息管理系统在技术、操作、经济和法律上都具有很高的可行性,开发此程序是可行的。

  第三章总体设计

  经过需求分析后,我们大概就知道了在开发和设计中需要完成哪些功能模块,每个模块具体又需要完成哪些子功能。总体设计的根本目的是为了初步知道实现软件的最基本功能和模块让随便一个人看到此总体设计就知道该软件的大概都有什么功能即概要设计,就达到了总体设计的目的[5]。经过上述的系统分析后,就开始进行系统的设计,系统设计包含总体设计和详细设计。总体设计只是一个大体的设计,经过了总体设计,我们能够划分出系统的一些东西,例如文件、文档、数据等。而且我们通过总体设计,大致可以划分出了程序的模块,以及功能。但是只是一个初步的分类,并没有真正的实现。

  在软件工程的模型设计有多种形式,UML的视图就包括五种,有逻辑视图、组件视图、并发视图、配置视图和用例视图[7]。整体设计,只是一个初步设计,而且,对于一个项目,我们可以进行多个整体设计,通过对比,包括性能的对比、成本的对比、效益的对比,来最终确定一个最优的设计方案,选择优秀的整体设计可以降低开发成本,增加公司效益,从这一点来讲,整体设计还是非常重要的。

  在这一部分,都包括了功能模块图、用例图和时序图,在接下来的说明中,会采用图文相结合的方式进行介绍。

  主要功能:

  一、用户模块

  1.借阅信息

  2.收藏夹

  3.资料修改

  4.公告信息查看

  5.借阅排行

  6.登录、注册

  二、管理员模块

  1.读者管理

  2.公告管理

  3.书架管理

  4.友情链接

  5.图书分类

  6.出版社管理

  7.图书管理

  8.订购管理

  9.借阅信息

  图书信息管理系统系统工作原理图如图3-1所示:

  图3-1系统工作原理图

  第一节功能模块图

  功能模块图:用来描述系统的功能组成,是产品方面应该给出的,提供给售前或销售的画出[6]。功能模块图是整个项目产品开发和设计中总体设计内至关重要的一个部分,通过功能模块图我们可以很清晰的、直观的看出客户的需求,它将要实现的功能分成了若干个模块,每个模块上又可以清晰直观的体现出各个子功能,再由开发人员进行具体的实现。模块化,顾名思义就是把一个大的整体按照一些不同的类型和不同的功能划分成为不同的部分,使其能够更加通俗易懂、方便理解、简化操作,使软件的层次更加分明。这样在程序的开发中如果出现了错误或者需要修改对应的功能时,只需要对照功能模块图将对应的模块进行修改更新即可,这样也能方便开发项目的测试和调试,不仅方便了程序员,也使项目软件的代码运行的更加稳定。各个分模块也能促进项目开发的资源分配和队伍的组织管理。

  本毕业设计的项目主要是开发和设计一款基于SSH框架结构、以Java为开发技术、以SQL Server数据库为服务器的图书信息管理系统。而功能模块主要分为用户模块和管理员模块。两个模块都是本设计的核心模块,实现其中的子功能也是本毕设设计的重点工作。在开发一款系统之前,我们需要对要开发的系统软件的目标和要实现的各功能进行细致有效的分析,通过分析来确定要开发的项目功能,这项工作在前期的需求分析中已经做了大致的梳理和讨论,在这里则需要更加细致的进行整理。在开发前,搭建好整体的开发思路,设计出如下的整体模块看功能,如图3-1所示。

  图3-1总体功能模块图

  进入系统后,就可以进行系统的相关操作,主要分为用户模块和管理员模块,进而进行具体的模块功能操作。

  下面是用户模块的相关功能介绍,如图3-2所示。

  图3-2用户功能模块图

  在用户所在的模块中,可以选择相应的功能进行操作,例如登录、注册,信息的修改,图书查看,借阅信息,公告查看等,基本满足用户在该图书信息管理系统中所需要的操作和功能需求。

  图3-3管理员功能模块图

  管理员模块如图3-3所示,首先需要进行管理员的身份登录,进入到不同于用户界面的后台界面中,在后台中,可以进行读者信息的管理,用户的借阅信息的管理,公告的修改工作,友情链接的添加和修改。图书信息管理系统中重要的环节还是书本信息的管理,在后台的管理员操作中,还可以对书本进行订购管理,书本的出版社分类管理,书架管理,以及书架中图书的管理。这些操作都非常方便,可以随时根据需要进行图书信息的增加和删减,可以大大简化工序,增加工作效率。

  第二节功能用例图

  用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图[5]。用例图的作用主要有三个方面,第一是获取需求,第二是指导测试,第三是可以在整个项目开发和设计工作的某些工作流中起到指导作用。UML用例图之间主要由扩展和使用两种关系构成,它们是泛化关系的两种不同的表达形式。所谓的泛化关系就是代表一般与特殊的关系。它的意思有些类似于面向对象程序设计中继承的概念,但是与继承不同的是泛化关系使用在项目开发前的分析和设计阶段,而继承则是在项目的开发过程中由编程语言一起实现。在用例图中,首先画个小人,用这个来表示用户,其次画个方块,这个表示用户的使用范围。再从代表用户的小人指向方块中的圆圈来表示用户所实现的功能。

  用例图中用例之间的关系除了泛化关系,还有包含关系和扩展关系。包含关系是指,基本用例的行为将另一个用例的行为包含在内,基本用例是在多个用例中都有的公共行为。在包含关系中,用例图的箭头都是从基本用例到包含用例的指向。

  扩展关系,基本的含意类似于泛化关系,但是在扩展关系中,对于扩展用例相比其他的用例会有更多的规则上的限制,通常,如果在用例中存在着一些相同的操作,那么可以直接采用它们之间相同的操作即可。提取单独构成一个用例(称为抽象用例),因此当用例使用抽象用例时,就好像用例包含抽象用例中的所有操作。只要是设计软件项目都需要用例图。通过用例图了解软件所要完成的功能与模块。

  图书信息管理系统用户模块的用例图如图3-4所示。用户进入系统可以进行借阅信息、收藏夹、资料修改、公告信息、借阅排行、各类图书等。

  图3-4用户模块的用例图

  图书信息管理系统中管理员模块的用例图如图3-5所示。系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:读者管理、公告信息、友情链接、书架管理、图书分类、出版社管理、图书管理、订购管理、借阅信息等功能。

  图3-5管理员模块的用例图

  第三节功能时序图

  时序图(Sequence Diagram)又叫做序列图、循序图,是UML交互图的一种。它通过描述对象之间发送消息的时间顺序来显示多个对象之间的动态协作。时序图中包含多个元素,分别是1.角色(Actor),系统角色,可以是人或者其它的系统;2.对象(Object),它代表了时序图中,对象在交互时所扮演的角色;3.生命线(Lifeline),代表对象在时序图中存在过一段时间;4.控制焦点(Activation)代表对象在时序图中执行操作的时期;5.消息(Message)则是用于实体之间的通信内容的建模。

  用户进入系统,选择相应的权限进行登录,再在对应的登录状态下选择相应的功能操作。

  图3-6用户时序图

  用户的部分功能操作时序图如图3-6所示。

  首先,用户通过登录系统登录自己的账号,进入系统内部,然后选择需要查看的图书或者功能模块,在图书浏览界面选择想要借阅的书本,系统会将用户提交的数据反馈给后台和数据库中,成功后就可以返回图书查询和其他的功能中继续浏览。

  图3-7管理员时序图

  管理员的部分功能操作时序图如图3-7所示。

  管理员通过登录系统登录管理员的账号,进入系统后台管理部分,然后选择图书管理、书架管理、用户管理或者其他的管理层功能模块,可以在图书管理中选择添加书本或者删除书本,也可以如图中所示,选择用户管理功能对用户图书的借还记录进行相应的操作,系统会将操作后提交的数据反馈到用户的账号和数据库中,成功后就可以用户管理和其他的功能中继续查看。

  第四章详细设计

  第一节系统开发流程详细设计

  数字化图书馆的核心是借助信息技术手段对书籍实现智能化、自动化、数字化的高效管理,为图书管理提供了新的服务模式,成为现代图书馆的发展方向[10]。因此在图书信息管理系统开发时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等。本图书信息管理系统的开发流程如图4-1所示。

  图4-1系统开发流程图

  第二节功能模块详细设计

  图书信息管理系统主要采用模块化设计,通过模块化设计,主要分为用户界面模块和管理员界面模块。当图书信息管理系统的使用者以用户的身份访问系统,可以进行注册登录、资料修改、查看借阅等功能。当使用者以管理员的身份访问时,则需要在专门的管理员登陆界面进行登录,方可进行后台管理相关的操作。

  一、用户注册流程

  用户在注册用户名的时候,需要输入用户名和用户登陆密码,并且需要对密码进行二次确认,如果两次密码输入不相同,会出现“两次输入的密码不同”的字样提示,并由注册信息的用户进行重新输入。接下来还会有其他的表单验证信息,各项数据的输入不能为空,如果某一项验证为空,则会出现非空提示,并返回重新注册。如果用户注册的用户名已经被占用,那么会显示“用户名已存在,请重新进行注册”的字样提示。如果没有问题,就执行下一步,填写姓名,选择性别,并且通过系统产生的验证码验证,为了方便用户注册,全部信息输入无误,点击“注册”按钮即可注册成功。具体的用户注册流程图如图4-2所示。

  图4-2用户注册流程图

  二、用户登录功能流程图

  在用户注册成功后,可以在注册界面返回进入到主界面,选择登录,注册好的用户就可以进行登录操作。登录时,用户需要填写注册时的用户名和密码,如果登陆的用户信息有哪一项没有填写,则会提示“用户名活密码为空”。如果某一项填写错误则会提示“用户名不存在或密码输入错误”。用户信息都输入正确即可登陆成功。用户登录的流程图如图4-3所示。

  图4-3用户登录流程图

  三、系统操作流程图

  用户登陆成功后,可以在用户界面进行各种功能的操作和信息的查询。大致的运行流程是:用户登陆后,选择相应的功能界面,系统会根据选择的功能做出相应的功能处理,再将这些处理信息返回到数据库中来判断信息的正确与否,如果错误,则系统会判定处理失败并返回到以登录好的界面;如果判断操作的信息正确,系统就会判定功能信息处理正确,用户就可以进行下一步的操作。管理员的登录操作和用户的登录操作相同,不同的是,选择的权限不同登录的界面就不同,管理员想要从后台管理图书和读者的相关信息,选择管理员登录界面进行登录即可。具体的系统操作流程图如图4-4所示。

  图4-4系统操作流程图

  四、添加信息流程

  管理员可以对图书信息、书架信息、出版社信息、公告信息、友情链接信息等进行添加操作,用户也可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,如果信息正确,会将其添加到数据库内,若信息有误,则会由系统提示用户或者管理员重新输入相关信息。

  图4-5添加信息流程图

  五、修改信息流程

  管理员可以对图书信息、书架信息、出版社信息、公告信息、友情链接信息进行修改,用户也可以对自己权限内的信息进行修改操作。首先进入修改信息界面,输入所要修改的信息数据,系统会进行数据的判断和验证,如果修改的信息合法,则可以修改成功,并且信息会更新至数据库;如果信息不合法则会修改失败,这是就需要管理员或者用户重新输入修改。修改信息流程图如图4-6所示。

  图4-6修改信息流程图

  六、删除信息流程

  管理员可以从后台对图书信息、书架信息、出版社信息、公告信息、友情链接信息、用户信息、用户借阅信息等进行删除操作,对需要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,如果点击确定按钮,那么系统就会删除掉所选中的信息,并在数据库内对与之相对应的信息进行删除,删除信息流程图如图4-7所示。

  图4-7删除信息流程图

  第三节数据库设计

  一、数据库设计原则

  数据库是计算机信息系统的基础。目前,电脑系统的关键与核心部分就是数据库。数据库开发的优劣对整个系统的质量和速度有着直接影响。数据库(DataBase)按照数据结构来组织的、存储和管理数据的仓库,是长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合[8]。关于数据库的概念,包含了两层含义:第一层是说数据库是一个实体,它是可以合理的保管数据的“仓库”;第二层含义是说数据库是数据存放和管理的新手段和新方法,这是区别于传统数据仓库管理的方法,它更适合于数据的更新和维护,对于数据的安全性有了更好的保障。关于数据库设计方面,目前,市场上主要有两种概念设计方法:集中式模式设计法和视图集成设计法[12]。

  数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的各种描述。在系统设计当中数据库起着决定性的因素。一个图书管理系统数据库的主要任务是对读者信息、管理员信息、图书资料信息、借阅归还图书信息、罚款信息等基本信息的操作及处理[9]。下面是根据本毕设的具体情况来设计出的几个关键实体的实体一关系图。

  二、数据库实体

  数据模型中的实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,公司中的每个员工,家里中的每个家具。

  1.借阅信息的实体图如图4-8所示。

  图4-8借阅信息实体图

  2.读者信息实体图如图4-9所示。

  图4-10图书信息实体图

  3.图书信息实体图如图4-10所示。

  图4-10图书信息实体图

  三、数据库表设计

  数据库的表信息属于设计的一部分,在之前的总体设计里已经简单介绍过了本毕设所用的数据库软件是SQLServer,下面就来简单介绍一下本毕设数据库中的各个表的详细信息。

  表4-1 sysuser用户信息表

  列名数据类型长度主键允许空说明

  id int 20是否用户编号

  usertype varchar 20否否用户类型

  username varchar 20否否用户名称

  userpwd varchar 20否否密码

  realname varchar 20否否真实姓名

  tel varchar 20否否联系电话

  delstatus varchar 20否否状态

  savetime varchar 20否否时间

  Sysuser数据库表的主键id用户编号int类型,长度为20,不可以为空;usertype用户类型varchar,长度20,不可以为空;username用户名称varchar,长度20;userpwd用户密码varchar,长度20;realname真实姓名varchar,长度20,不可以为空;tel联系电话varchar,长度20,不可以为空;delstatus状态varchar,长度20,不可以为空;savetime时间varchar,长度20,不可以为空。

  表4-2jieyuerecord借阅信息表

  列名数据类型长度主键允许空说明

  id int 4是否编号

  gid varchar 20否否图书编号

  memberid varchar 20否否用户

  stime varchar 20否否开始时间

  etime varchar 20否否结束时间

  iszj varchar 20否否是否借书

  isyq varchar 20否否是否逾期

  fakuan varchar 20否否罚款

  status varchar 20否否状态

  yqday varchar 20否否逾期天数

  表4-3news公告信息表

  列名数据类型长度主键允许空说明

  id int 4是否序号

  title varchar 20否否标题

  note varchar 20否否内容

  img varchar 20否否图片

  savetime varchar 20否否时间

  type varchar 20否否公告类型

  第五章技术实现

  第一节SSH简介

  在本文的开始我们就讨论过关于该毕设所做的图书信息管理系统是基于Java语言和SQL Server数据库开发的,那么接下来就具体说说所用到的技术以及一些模块的完成。

  本毕设是基于SSH为技术,采用了MVC架构所开发的一个图书信息管理系统。现在大多数系统开发或者软件开发都采用的SSH技术主要是由三部分组成:Struts+Spring+Hibernate,是目前比较流行的一种开源框架结构。

  集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,用以帮助开发人员在短时间内搭建出结构清晰、可复用性高、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供配置文件的支持,Spring做管理,用来管理Struts和Hibernate。具体的管理做法是:用面向对象的分析方法根据需求来提出一些模型,将这些根据需求提出来的模型实现为一个个基本的Java对象,然后编写基本的DAO层(Data Access Objects)接口,并给出Hibernate的DAO层实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理Struts和Hibernate。

  系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

  一、SSH框架的Struts1

  Struts是基于MVC框架来实现的,Struts的实现还依赖于Servlet和JSP实现。Struts对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts1的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。1.Model部分:由Action Form和JavaBean组成,其中ActionForm用于将用户的请求参数封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。而JavaBean则是封装了底层的业务逻辑,包括数据库访问等。2.View部分:该部分采用JSP(或HTML、PHP……)实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。3.Controller组件:Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,对应上边的ActionServlet。该控制器继承了HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。

  二、SSH框架的Spring

  Spring也是一个开源的框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring框架的目的是为了解决应用项目或者系统的复杂性;spring作用的范围是任何采用Java语言开发的项目;spring的功能则是使用基本的JavaBean来代替EJB,并且可以为开发人员提供更多的企业应用功能。

  简单的来说,spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。所谓的轻量就是指从大小于开销两个方面来说spring都是轻量的,完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:举个典型地例子来说,Spring应用中的对象不依赖于Spring的特定类。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了控制反转技术,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为控制反转与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面是指,Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

  Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

  所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

  三、SSH框架的Hibernate

  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

  Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。

  Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。

  SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

  Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

  Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

  Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

  第二节MVC框架

  MVC,全称为Model View Controller,即模型-视图-控制器。其中模式(Model)是Web应用中用于处理数据逻辑的部分,包括Service层和Dao层,Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查,Dao层用于放各种接口,以备调用;视图(View)是Web应用中处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图,通常视图是依据模型数据来创建的;控制器(Controller)在Web应用中,简而言之,就是Servlet,或者SpringMVC框架中加了注解 Controller的方法(实际上一个方法就相当于一个对应的Servlet)。

  首先,浏览器发送请求,JSP页面响应给客户,客户点击JSP页面上的内容,再次提交请求;这一次,请求到Controller控制器模块,也就是Servlet服务器中,Servlet服务器通过分析请求,判断客户的需求,然后调用Model模型,用Service层处理数据库的增删改查,用Dao层提供接口支持,然后Servlet将数据驱动到View视图层也就是JSP页面中,将JSP页面响应给浏览器,客户看到动态的内容。这就是整个MVC框架工作的大致流程。

  MVC之所以流行于现在的Web项目开发中,是因为它有很多优点可以供开发人员方便的进行开发,例如耦合性低、重用性高、部署速度快、生命周期成本低、可维护性高、软件的工程化管理程度高等。但是随着科技的不断发展,它的一些缺点也逐渐暴露了出来,例如它不适合中小规模的应用程序的开发,在使用中会增加系统结构和实现的复杂性,视图和控制器联系过于紧密导致视图对模型数据的访问效率低下,还有一些高级的界面工具或者构造器不支持模式等。但这些缺点可以根据开发项目的不同而有所针对,因此,MVC开发框架还是很受广大开发项目的程序员们的喜爱。

  第六章系统界面实现

  第一节管理员界面运行结果

  一、登录

  管理员输入个人的账号、密码登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的账号或者密码不正确,数据库就会提示出错误的信息提示,同时会提示用户重新输入输入自己的账号、密码和选择角色,直到账号密码输入成功后,系统会提示登录成功的信息。后台管理员用户登录效果图如图6-1所示:

  图6-1管理员登录界面

  二、读者管理

  管理员对读者信息进行添加、删除、修改以及查看等操作。程序运行结果如下图6-2所示:

  图6-2读者管理运行界面

  三、公告信息

  管理员对公告信息进行添加、删除、修改以及查看等操作。程序运行结果如

  图6-3所示:

  图6-3公告管理运行界面

  四、友情链接

  管理员对友情链接信息进行添加、查看、修改以及删除等操作。程序效果图

  如下图6-4所示:

  图6-4友情链接运行结果

  五、书架管理

  管理员对书架信息进行添加、查看、修改以及删除等操作。程序运行结果图如下图6-5所示:

  图6-5书架管理运行结果

  六、图书分类

  管理员对图书分类信息进行添加、删除、修改以及查看等操作。程序效果图如下图6-6所示:

  图6-6图书分类运行结果

  七、出版社管理

  管理员对出版社信息进行添加、删除、修改以及查看等操作。程序效果图如下图6-7所示:

  图6-7出版社管理运行结果

  八、图书管理

  管理员对图书信息进行修改、删除、添加等操作。程序效果图如下图6-8所示:

  图6-8图书管理运行结果

  九、订购管理

  管理员对图书订购信息进行订购、修改数量等操作。程序效果图如下图6-9

  所示:

  图6-9订购管理运行结果

  十、借阅信息

  管理员对用户借阅信息进行修改、删除等操作。程序运行结果图如下图6-10

  所示:

  图6-10借阅信息运行结果

  第二节用户界面运行结果

  进入系统可以个人信息、图书管理、库存管理、销售管理、图书统计等功能。程序运行结果图如下图6-11所示。

  图6-11前台界面运行结果

  一、用户注册界面,如图6-12所示。

  图6-12用户注册运行结果

  二、用户登录运行结果,如图6-13所示。

  图6-13用户登录运行结果

  三、图书浏览界面,如图6-14所示

  图6-14图书浏览界面运行结果

  四、用户的借阅记录,如图6-15所示。

  图6-15用户的借阅记录运行结果

  五、用户的收藏夹,如图6-16所示。

  图6-16用户的收藏夹运行结果

  六、用户的资料修改界面,如图6-17所示。

  图6-17用户的资料修改界面运行结果

  七、前台的公告信息界面展示,如图6-18所示。

  图6-18前台的公告信息界面运行结果

  第七章系统测试和分析

  系统测试(System Testing)是在项目完成后对整个项目系统的测试,将硬件、软件以及系统的操作人员看作一个整体,以此来检验该系统及其操作是否有不符合系统说明书的地方。进行系统测试的目标有四个,第一要确保整个系统的测试活动是按照计划进行的;第二,验证开发出的软件产品和系统的需求用例是否相符,尽量避免不符合或者两者相矛盾的地方;第三,通过系统测试来建立一个完善的系统测试缺陷记录跟踪库,这样可以很方便的在今后的项目开发或者系统维护中开展相关的工作;第四,确保参与系统测试的测试人员在结束测试后及时的将测试结果通知相关的小组或者个人,以保障系统测试中出现的bug能被及时修复和更正。

  系统测试还应该遵循的原则有四点:第一,测试机构要与开发机构相独立,这是为了避免开发人员在测试中无意中绕开潜在的bug,从而导致系统测试不全面,也不能建立起有效的缺陷记录跟踪库;第二,测试计划要进行周密的策划,包括负载、压力、用户界面、可用性、逆向、安装和验收等各个方面的测试;第三,要进行回归测试;第四,整个系统测试还应该考虑经济性原则。

  图书信息管理系统开发的最后一个步骤就是进行开发项目的系统测试,系统测试也是整个图书信息管理系统十分重要的一个环节,测试的好坏关系到产品的发展。客户对软件的质量、性能和可靠性等需求就要通过系统测试来实现的。测试过程必须要遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统整体运行中,是否会出现bug,然后对出现的bug进行进一步的调试和修改,直到程序完美运行。但是软件的测试只能尽可能的减少系统中的bug,理论上来说是无法达到消除bug的地步的。但是bug越少,系统出错的几率就越低,用户在使用起来也会更加方便、更加安全。

  近些年来,软件测试是从现在的检验环节当中来看,查找出系统接近预期目标可能会出现的一些问题,并对这些错误做出相应的修正,假如我们不进行早期的测试工作,这些遗留下来的系统错误就会被延续下去,最后所做出的成品当用户在使用上来说就会有很大的困难。

  我们要在这个测试的过程当中找出错误。测试成软件开发的主要一部分,自从有了程序的设计那天开始,它就成为了重要的组成部分。经过统计来看,软件测试可以占据这个系统45%的工作量,而在软件开发的成本当中,对于测试成本来说它包含了很多的测试工作。每个程序测试时都会出现和遇到错误。在整个程序的开发过程当中,人为去查找错误是非常复杂和困难的,所以我们一般都会找一些测试的工具来进行测试。

  第一节系统测试的意义

  随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。

  第二节系统测试的方法

  我们对软件的测试主要分为两种,一种是黑盒测试,另外一种是白盒测试[20]。黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。

  白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。

  具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。

  系统的维护,是指由专业的系统管理人员在后台对系统在运行时可能出现的状况进行处理,为了保障用户的使用体验[20]。

  第三节测试分析

  本图书信息管理系统满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及会员能够方便操作。系统的主要特点和优点归纳如下:

  (1)本系统用的移植性和针对性都比较高,因为针对性高可以提供更好的服务,而移植性好,就表示该系统可以在多个系统上运行,更给客户带来了极大的方便。

  (2)本毕设所做的图书信息管理系统内容全面,管理方便可以及时的、全面的处理各种错误和异常,这样就避免了很多因为客户的马虎操作而出现的一些不必要的失误。该图书信息管理系统操作方便,会员界面友好,能够上网的人都可以很好的进行操作。

  经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进图书信息管理的发展,发展前景广阔。