您的当前位置:首页正文

基于MVC的图书管理系统

2024-09-05 来源:步旅网
摘 要

在人类文化的传承与发展中,书籍的作用功不可没,正如高尔基所言,书籍是人类进步的阶梯,随着知识的爆炸,读者日益增多,图书馆的出现满足了人们对知识的渴望,研究怎样高效的管理图书将是一个十分有意义的课题。

通过对图书馆管理系统的运行管理机制进行调查研究,开发了此图书馆管理系统。本系统中实现了图书管理事务中的常用基本问题以及相关统计工作。本系统中包含9个功能模块:首页展示、系统设置、读者管理、图书管理、图书借还、系统查询、更改口令,读者模块、退出系统。我主要负责图书管理、读者管理、读者模块。

本系统使用jsp进行网页界面的设计,使用MVC设计模式,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库SQL Server2008具有较高的完整性、一致性和安全性。

关键词:图书馆管理 SQL Server2008 JSP Servlet

Abstract

On the inheritance and development of human culture in the book goes to the role, as Gorky said, books are a ladder of human progress, with the explosion of knowledge, increasing readers, libraries appeared satisfied the people's desire for knowledge on how efficient management book is a very interesting subject.

By undertaking studies on operation and management mechanism of library management system, developed this library management system. Implementing library management system commonly used in basic and related statistics. This system contains 9 modules: Home show management, library management, system settings, reader, book borrowing and returning system query, change password, reader modules, exit the system. I was responsible for library management, user management, user module.

This system using JSP for Web interface design, using the MVC design pattern, it uses today's software has been designed with the latest technology, have high development efficiency, design flexibility, build user friendly appearance and other characteristics of the software. This seamless connectivity through a database and JDBC driver in your system, the back-end database SQL Server2008 have high integrity, consistency, and security.

Key words: library management SQL Server2008 JSP Servlet

目 录

第1章 绪论

1.1 课题现状分析

当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

基于上面,有必要建立一个基于JSP的图书馆管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。

1.1.1 图书管理的现状

一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书管理系统广泛使用之前,借书和还书过程主要依靠手工。

一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。随着近年来信息技术及计算机网络技术的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作—图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者 服务,利用已有的办公局域网络条件,将馆藏书籍做成基于JSP的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。

传统的图书管理模式其最大的特点是手工。首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证件者的借还书时间和在书签条上写下借还书记录,之后把借书证留在那里;还书的时候相对应的消去出借记录;这样做起来比较麻烦比较费时间。传统图书管理的特点是一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用

1

传统的人工方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。

1.1.2 现有图书馆管理系统现状

在试用了一些个图书管理系统和查阅了大量相关资料文献的基础上,发现那些系统在几个方面已经不符合时代的要求,由于设计人员及其所用的工具的不同,再加上图书管理系统设计的时间也不一样,所用具体场合也有区别,因此在功能上除了图书资料管理所需的基本功能之外也有所不同。经过比较总结他们都实现了以下图书馆管理的基本功能:(1)图书检索模块:是图书管理系统的重要模块之一,是读者快速查询图书的途径。(2)图书管理模块:是图书管理员操作模块,读者是无权进入的。由借出图书登记、归还图书登记和续借图书登记子模块构成。(3)数据维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。(4)数据统计模块:由读者统计、图书统计、借出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的系统能使读者快速检索到自己喜爱的书,图书管理员能减轻工作量。

但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生活环境已经发生了改变,大家对于图书查询这方面的要求也更高。如在一个局域网内,大家希望能在本台电脑上就能查找自己想要的图书,就需要网络化的联机查询系统。

1.2 选题的目的及意义

目的:随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。

意义:图书馆管理系统是一项非常有意义的开发工作,其发展的潜力巨大,现今最好的办法就是使用计算机操作的图书馆管理系统来实现对图书馆的管理,这就为图书馆管理系统提供了市场需要,而图书馆管理系统在现代社会是最热门的行业,国际上在线图书管理系统前景看好,而国内的在线图书,数量上也有了新的增长。数字图书,各学校的电子图书室等在线图书的出现,证明了在线图书管理系统的前景是好的。它的建立使图书馆管理摆脱传统摆脱用手工操作,实现通过互连网而进行的远程图书借阅,其发展前景将是非常深远的。

1.3 课题研究的主要内容

本次毕业设计能够实现动态站点的开发与维护的技术――JSP。JSP用于页面显示部分, JDBC用于存取数据库,数据库用于数据存储。JSP通过对数据库的数据处理,实现图书馆书籍的管理。本系统主要采用的是B/S结构,由于传统C/S结构存在灵活性差、升级困难、维护工作量大等缺陷,已较难适应当前信息技术与网络技术发展的需要。随着WEB技术的日益成熟,Browse/Server(简称B/S)结构已成为取代Browser/Server(简称C/S)结构的一种全新技术。采用该结构软件的优势在于:(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。

在MyEclipse开发环境下,以J2EE为平台,运用JSP网络编程语言和SQL server数据库完成了B/S模式的图书馆管理系统。

网站主要实现的功能有查询、借阅、信息管理,其中信息管理为重点,包括图书信息管理、读者信息管理、管理员信息管理等。通过对信息输入、编辑(增加、删除、查询、修改)等功能完成对图书信息数据库、用户信息数据库的操作管理。

3

第2章 系统开发工具及相关技术

2.1 JSP技术

JavaServer Pages 技术是一个纯Java平台的技术,它主要用来产生动态网页内容。在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网页。

JSP在多个方面加速了动态的Web页面的开发:

程序写一次,到处可以运行。JSP在设计时,充分考虑到应用平台的无关性。依赖于Java的可移植性,JSP得到目前许多流行操作平台的支持,可在Apache、NetScape、IIS等服务器上执行。

执行速度快。JSP页面只需编译一次转化为Java字节代码,其后一直驻留于服务器内存中,加快了对JSP页面的响应速度。若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快得多。

Java的优势。JSP技术是用Java语言作为脚本语言的。跨平台、成熟、健壮、易扩充的Java技术使得开发人员的工作在其他方面也变得容易和简单。Java语言通过提供防止内存泄漏的方法,在内存管理方面大显身手。加之,JSP为应用程序提供了更为健壮的意外事件处理机制,充分发挥了Java的优势。

JSP标签可扩充性和跨平台的可重用性。JSP技术能够使开发者扩展JSP标签得以应用,JSP开发者能定制标签库,大大减少对脚本语言的依赖。由于定制标签技术,使网页制作者降低了制作网页和向多个网页扩充关键功能的复杂程度。JSP组件(企业Javabeans,JavaBeans或定制的JSP标签)都是跨平台可重用的。Javabeans和企业Javabeans组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。

2.2 jsp开发相关技术

(1)JDBC是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaEE。这些接口的实现类叫做数据库驱动程序,由数据库的厂商或其它的厂商或个人提供。为了使客户端程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使应用仅依赖java.sql及javax.sql中的接口和类。使用内嵌式的SQL,主要实现三方面的功能:建立与数据库的连接,执行SQL声明以及处理SQL执行结果。JDBC支持基本的SQL功能,使用它可方便地与不同的关系型数据库建立连接,进行相关操作,并无需再为不同的DBMS分别编写程序。 (2)Servlet

Servlet是一个用Java编写的应用程序,在服务器上运行,处理请求的信息并将其发送到客户端。Servlet的客户端可以提出请求并获得该请求的响应,它可以使任何Java应用程序、浏览器或任何设备。对于所有的客户端请求,只需要创建Servlet的实例一次,因此节省了大量的内存。Servlet在初始化后即驻留内存中,因此每次作出请求时无需加载。Servlet与Applet相对应,Applet是运行在客户端的浏览器,而Servlet是运行在服务器端的。 JAVA Servlets 是运行在请求/面向请求服务器上的模块。也就是说:servlet能够象CGI脚本一样扩展WEB服务器功能,但是servlet占用很少密集资源,当一个服务器装载servlet时, 它运行servlet的 init 方法. 这个方法不能反复调用,一旦调用就是再装载servlet. 直到服务器调用 destroy 方法卸载 servlet后才能再调用.每个新的CGI要求在服务器上新增一个进程。如果多个用户并发地访问该程序,这些进程将消耗该Web服务器所有的可用资源,并且系统性能降低到极其低下的地步。有很多用CGI脚本编制的一些站点由于访问量剧增,性能迅速下降,这是CGI脚本一个缺点。 同时由于servlet 是用java编写的,因此是跨平台的。

(3)SQL Server

SQL Server 2008是一个功能强大的数据库,它有以下特点:

可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。

高效的——使得公司可以降低开发和管理他们的数据基础设施的时间和成本。 智能的——提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。

(4)Tomcat

Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。

(5)MyEclipse

是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

2.3 B/S结构

本系统采用B/S模式来实现客户端对服务器端的调用,所谓B/S模式即浏览器/服务器模式,是一种从传统的二层C/S模式发展起来的新的网络结构模式。在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向WEB服务器提出访问数据库的要求,WEB服务器接受客户端请求后,将这个请求转化为SQL语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给WEB服务

5

器,WEB 服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器,以友好的WEB页面形式显示出来。如图2.1所示。

Web Browser Web Browser WEB 服务器 数据库服务器 Web Browser 图2.1 B/S模式图

与传统的C/S模式相比,B/S结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。而且使维护任务层次化:管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。

第3章 系统分析

3.1 可行性分析

采用现代化统一的计算机信息网站系统,能够有效优化图书馆管理系统,使其高效的发挥最大作用,能够迅捷的为读者提供相应的服务。开发本系统的可行性研究如下。

(1) 技术可行性

技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用JSP开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用SQL Server,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。

(2) 经济可行性

鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在经济可行性上时可行的。

3.2 系统实现的目标

图书管理系统的开发主要实现的目标有以下几个方面: (1)界面设计友好、美观。 (2)数据存储安全、可靠。 (3)信息分类清晰、准确。

(4)强大的查询功能,保证数据查询的灵活性。 (5)实现借书、还书、续借。

(6)提供图书借阅排行榜,为图书管理员与读者提供真实的数据信息。 (7)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。 (8)具有易维护性和易操作性。

3.3 系统功能分析

(1)密码设置:每个操作员均有自己的密码,可以防止非本系统人员进入本系统;又因每个人的权限不一致,故可以防止越权操作。

(2)资料维护:为了存放图书、读者档案的全部数据,本系统将每一本图书和每位读者的信息进行管理。系统维护包括对各种表记录的修改、删除、添加等操作。 (3)系统查询:可以按图书编号、作者等相关信息进行查询。 (4)系统管理:进行员工管理、图书和读者管理。

(5)报表统计:包括统计图书信息、读者信息、借阅信息和到期提醒信息等。 (6)其它操作:包括修改个人资料、添加用户等。

3.4 开发及运行的环

(1)硬件环境

CPU: 一台Pentium 4 cpu 以上的微机及兼容 内存:512MB以上(最好1GB内存) 显示屏:VGA 彩显一台 (2)软件环境

操作系统:Windows 2000 以上的

7

数据库:SQL Server 开发工具包:JDK JSP服务器:Tomcat

浏览器:IE6.0及以上版本

分辨率:最佳效果1024像素*768像素

3.5 设计模式分析

设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种目前广泛流行的软件设计模式MVC。MVC(Model-View – Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,显示模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并响应请求。其模型关系如图所示。在MVC模式中,三层各尽其职、相对独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应用操作的耦合度,也能更好的实现开发中的分工,加快工程进度。

第4章 系统设计

4.1 系统功能设计

4.1.1 总体功能设计

在MyEclipse开发环境下,以J2EE为平台,运用JSP网络编程语言和SQLServer数据库完成了B/S模式的图书馆管理系统。根据图书馆管理系统的实际需求,可以将图书馆管理系统划分为系统设置,读者管理,图书管理,图书借还,系统查询和更改口令6个部分,各个部分的具体功能的系统功能结构图如图4.1所示

图书馆管理系统 管理员 读者

更改口令

图书管理 图书借还 系统查询 首 页 展 示 读者管理 系统设置 修改个人信息 查看相关信息 图书类型管理 图书档案管理 修改图书 删除图书 添加图书 读者档案管理 读者类型管理 添加读者 修改读者 删除读者 4.1 系统功能结构图 图

4.1.2 系统设置模块设计

(1)图书馆设置:包括图书馆名称及相关资料信息的显示。

(2)参数设置:包括办证费,有效期和罚款金额的修改。

(3)书架设置:包括书架名称的添加,查看,修改以及删除功能,各操作添加了JavaScript验证:添加操作时,如该系统已有该书架,会弹出添加失败警告;删除操作时,若该系统的书架上还有此图书,执行此操作时会弹出删除失败警告,修改书架时,若该系统已有此书架,此次操作失败,修改书架成功后,相应图书的书架信息也会随之改变。

(4)管理员管理:包括管理员名称及相关权限的添加,修改和删除。不同的管理员根据不同的权限执行不同权利。

(5)出版社设置:包括出版社的添加,删除和查看功能。

4.1.3 读者管理模块设计

(1)读者类型管理:包括读者类型的添加、修改、查看和删除。各操作添加了相应的JavaScript验证:当删除读者类型时,若已有该类型读者注册了,则此操作失败;当修改读者类型时,只可修改相应读者所借图书数量,读者类型为只读,以防后续程序的混乱;当添加已有读者类型时,添加操作失败。

(2)读者档案管理:包括读者详细信息的查询、修改,删除和读者档案管理,其中读者档案管理包括添加、修改、删除读者信息。添加及修改操作添加了相应的JavaScript

9

验证:当添加读者时,添加的读者图书卡编号、邮箱、证件号码及电话号码不能与已存在的读者信息重复,否则会提示添加失败;当修改读者信息时,读者的姓名和图书卡号是只读,不能修改修改,读者邮箱、证件号码及电话号码不能与已存在的读者信息重复,否则会提示修改失败。

(3)添加读者信息:添加读者的详细信息并添加了相应的JavaScript验证:当添加读者时,添加的读者图书卡编号、邮箱、证件号码及电话号码不能与已存在的读者信息重复,否则会提示添加失败。

(4)删除读者信息:根据读者图书卡号、性别、证件类型、读者类型进行精确或模糊查询,高效地定位所要删除的记录。

(5)修改读者信息:根据读者图书卡号、性别、证件类型、读者类型进行精确或模糊查询,高效地定位所要修改的记录,添加了相应的JavaScript验证,读者的姓名和图书卡号是只读,不能修改修改,读者邮箱、证件号码及电话号码不能与已存在的读者信息重复,否则会提示修改失败。

4.1.4 图书管理模块设计

(1)图书类型设置:包括图书类型的添加、修改、查看和删除。各操作添加了相应的JavaScript验证:当删除图书类型时,若已有该类型的图书了,则此操作失败;当修改图书类型时,只可修改相应图书类型的借阅天数,图书类型名为只读,以防后续程序的混乱;当添加已有的图书类型时,添加操作失败。

(2)图书档案管理:包括图书详细信息的查询、修改,删除和图书档案管理,其中图书档案管理包括添加、修改、删除图书信息。添加及修改操作添加了相应的JavaScript验证:当添加图书时,添加的图书条形码不能与已存在的图书条形码重复,否则会提示添加失败;当修改图书信息时,图书编码是只读,不能修改。

(3)添加图书信息:添加图书的详细信息并添加了相应的JavaScript验证:当添加图书时,添加的图书条形码不能与已存在的图书条形码重复,否则会提示添加失败。

(4)删除图书信息:根据图书条形码、图书类型、图书名称及作者进行精确或模糊查询,高效地定位所要删除的记录。

(5)修改图书信息:根据图书条形码、图书类型、图书名称及作者进行精确或模糊查询,高效地定位所要修改的记录,添加了相应的JavaScript验证,图书条形码是只读,不能修改修改。

4.1.5 图书借还模块设计

(1)借书处理:主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、还书期限及相关其它信息。

(2)还书处理:主要功能是输入借阅证编号、图书ID,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录表中。

(3)图书续借:进行续借相关功能,记录借阅证编号和图书编号,完成续借过程。

4.1.6 系统查询模块设计

(1)图书借阅查询:可以通过借阅时间和选择查询依据两种方式查看图书借阅信息,两种方式只能选择其一,否则会弹出相关失败查询提示。查询依据包括图示名称、作者和图书条形码,当查询依据与所填写的内容不对应时,会弹出相关失败查询提示。此查询包括:此查询包括:‘图书编号’、‘图书名称’、‘借阅证编号’、 ‘读者名称’、‘借书日期’、‘还书日期’、‘是否归还’。

(2)借阅档案查询:根据相应的借阅信息进行所需查询。此查询包括:‘图书编号’、‘图书名称’、 ‘图书类型’、‘出版社’、 ‘书架’、‘作者’、‘价格’、‘管理员’、‘入库时间’。 (3)借阅到期提醒:根据相应的图书信息归还日期进行判断结果及查看。根据借阅表(tb_borrow1)和图书类型表(tb_booktype)查出相应图书借阅天数i1和借阅时间borrowTime,利用函数dateadd(dd,\"+i1+\计算还书日期aa,datediff(dd,'\"+aa+\"',getdate()) 计算超期天数,从参数设定表(tb_parameter)查出每天罚款金额。此查询包括:‘图书编号’、‘图书名称’、‘图书类型’、‘借阅证编号’、‘读者名称’、‘借书数量’、‘借书日期’、‘还书日期’、‘借书时间’、‘超期天数’、‘罚款金额’。

4.1.7 读者模块设计

(1)登录:只有合法用户才能登录进入该系统,维护了系统的安全性。

(2)修改个人资料:用户可以修改自己的资料,比如电话号码、电子邮件等,方便管理员联系。

(3)查找图书:用户可以查询自己想借的图书的相关信息,比如书架、作者、价格,以便了解最新信息。

(4)显示图书排行榜:该图书排行榜根据借阅次数统计出来,读者可以据此了解比较热门的图书。

(5)显示借阅情况:读者可以查看自己的借阅情况,包括借的书的数量,应还日期,过期应该建缴纳的费用等。

(6)修改密码:用户可以修改自己的登录密码。

(7)退出系统:点击就可以退出,只有再次登录才能进入。

4.1.8 更改口令模块设计

更改管理员的用户名和密码,新密码与确认密码不一致时,会弹出相关提示,用户名与密码跟数据库的信息不一致时会弹出相关提示,在这里也用到了JavaScript验证。

4.2 系统数据库设计

4.2.1 数据总体结构设计

整个系统所包括的信息有读者信息、图书信息、图书馆信息、图书借阅信息、图书借阅历史记录信息,出版社信息、书架信息、管理员信息、读者类型信息、图书类型信息、

11

参数信息、读者密码信息、管理员权限信息。可将信息抽象为下列系统所需要的数据项和数据结构:

(1)图书信息(编号ID,图书编号,图书名称,图书类型,作者,译者,页数,价格,出版社,所在书架,入库时间,操作员)

(2)图书类型(类型编号ID,名称,可借阅天数)

(3)读者信息(编号ID,姓名,性别,图书卡编号,读者类型,出生年月,有效证件,证件号码,注册时间,电话,邮箱,操作员)

(4)读者类型(编号ID,名称,可借阅图书本数) (5)读者密码信息(编号ID,读者名称,密码) 系统E_R图如图4.2所示:

证件号码 姓名 图书卡编号 名称 图书馆信息 名称 邮箱 读者 y 读者类型 m l k 查看 y借阅 设置 参数信息 a b 设置 设置 c h xi 查询 j p P11 b设置 d e 姓名 查询 管理员 密码 c编号 f ng h pP2 设置

图书名称 图书 图书条形码 P3 摆放 图书类型 P4 z生产 P8 出版社名 图4.2 系统E-R 图

书架名 P6 P5 设置 P6 P4 1书架信息 P7 1编号 d出版社信息 编号

4.2.2 图书信息表结构设计

图书信息表主要用于存储图书馆中所藏图书的相关信息,其中的相关信息是在图书入库时由操作员进行添加完善,此表主要用于读者和图书管理员对馆中图书的查询,系统用户根据图书的某个属性进行查询,便可得知图书的其他相关信息,其中图书所在书架属性是便于读者借阅时对图书的寻找,图书价格是在读者不慎将图书遗失时对遗失图书进行赔偿的依据。表的具体结果如如表4.1所示:

表4-1 图书信息表tb_bookinfo1

字段名称 图书条形码 书名 作者 译者 出版社 图书价格 图书所在书架 图书入库时间 操作员 图书页码 图书类型 编码

字段名 barcode bookname author translator ISBN price bookcase inTime operator page typeid id

数据类型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar int

字段长度 30 70 30 30 20 50 10 50 30 10 50 10

备注 主键 主键

13

4.2.3 图书馆信息表结构设计

该表用来保存图书馆信息,包括编号ID、图书馆名称、馆长名称、联系电话、联系地址和图书馆网址、建馆时间、简介。管理员可以根据需要对图书馆信息进行修改,该表的具体结构设计如表4.2所示如下:

表4-2 图书馆信息表tb_library

字段名称 编码 图书馆名称 馆长名称 联系电话 联系地址 电子邮件 建馆时间 图书入库时间 简介

字段名 id libraryname curator tel address email createDate inTime introduce

数据类型 int varchar varchar varchar varchar varchar varchar varchar varchar

字段长度 10 30 30 30 30 30 30 50 max

备注 主键

4.2.4 读者信息表结构设计

读者信息表的设计是为了图书馆管理员对读者进行管理,其中读者ID,不同类型证件的号码都是唯一的,是读者在借阅图书时需要输入对读者身份进行识别的信息,读者邮件电话等信息是为了与读者进行联系,读者类型信息决定了读者一次性可借阅的图书的数量,操作员是为了便于对信息才操作的查询。表的具体结构设计如表4.3所示:

表4.3 读者信息表tb_reader

字段名称 名字 性别 图书卡号 电话号码 电子邮件 操作员 备注

出生日期 注册时间 读者类型 证件类型

字段名 name sex barcode tel email operator remark Birthday createDate readerType zhengjianType

数据类型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar

字段长度 30 4 30 30 20 50 10 50 30 10 50

备注 主键

证件号码 编码 zhengjianNO id varchar int 30 10 主键

第五章 界面设计

5.1 读者管理的设计

该读者管理包括读者类型管理、读者档案管理、添加读者信息、删除读者信息和修改读者信息。

5.1.1读者类型管理

当点击读者类型管理时,首先判断该管理员是否有读者管理权限,验证成功后,在右边会显示readerType.jsp页面,否则会转到欢迎页面即right.jsp页面,readerType.jsp页面的表单中包括读者类型名称、借书数目、添加读者类型信息、修改和删除。当点击添加读者类型信息时会转到readerTypeAdd.jsp页面,该页面表单包括读者类型名称、借书数目、确认、重置和关闭按钮,点击确认按钮时,若添加成功会弹出添加成功对话框,否则弹出添加失败对话框,点击重置按钮,会恢复readerTypeAdd.jsp页面,点击关闭按钮,则返回readerType.jsp页面。点击修改按钮时,会转接到readerTypeModify.jsp页面,该页面表单包括读者类型名称、借书数目、确认和关闭按钮,点击确认按钮时,若修改成功会弹出修改成功对话框,否则弹出修改失败对话框,点击关闭按钮,则返回readerType.jsp页面。单击删除按钮时,转到readerTypeDel.jsp页面,该页面包括读者类型名称、确定和返回按钮,点击确定按钮,若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回readerType.jsp页面。

5.1.2 读者档案管理

当点击读者档案管理时,首先判断该管理员是否有读者档案管理权限,验证成功后,在右边会显示readerDangAnM.jsp页面,否则会转到欢迎页面即right.jsp页面,在

rDangAnM..jsp页面的表单中包括读者姓名、性别、图书卡号、读者类型、出生日期、证

15

件类型、证件号码、电话、Email、注册时间、操作员、备注、修改、删除和档案管理。当点击修改按钮时会转到readModify1.jsp页面,该页面表单包括读者姓名、性别、图书卡号、读者类型、出生日期、证件类型、证件号码、电话、Email、备注、确认和返回按钮,点击确认按钮时,修改时,证件号码、电话、Email不能与已存的读者相同,否则会弹出相关提示错误信息,若修改成功会弹出修改成功对话框,否则弹出修改失败对话框,点击返回按钮,会转到readerDangAnM.jsp页面。当点击删除按钮时,转到readerDel.jsp页面,该页面包括姓名、图书卡号、证件号码、确定和返回按钮,点击确定按钮,若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回readerDangAnM.jsp页面。当点击档案管理时,会转到readDanganM.jsp页面,该页面包括一个Spry面板,包括三部分,分别为删除读者信息、修改读者信息和添加读者信息。点击修改读者信息菜单时,面板的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到readerMod ifyCha.jsp页面,显示相关读者的信息,该页面包括读者的相关信息及修改按钮,单击修改按钮,会转到readModify1.jsp页面,该页面表单包括读者姓名、性别、图书卡号、读者类型、出生日期、证件类型、证件号码、电话、Email、备注、确认和返回按钮,点击确认按钮时,修改时,证件号码、电话、Email不能与已存的读者相同,否则会弹出相关提示错误信息,若修改成功会弹出修改成功对话框,单击确定按钮,会定位到readerModifyCha.jsp页面,否则弹出修改失败对话框,点击返回按钮,会转到readerModifyCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到

readDanganM.jsp页面。点击删除读者信息菜单时,该面板的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到readerDelCha.jsp页面,显示相关读者的信息和删除按钮,单击删除,转到readDel.jsp页面,该页面包括姓名、图书卡号、证件号码、确定和返回按钮,点击确定,若删除成功,则提示删除成功提示,然后转到readerDelCha.jsp页面,单击返回则转到readerDelCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到readDanganM.jsp页面。当点击添加读者信息时,面板的表单中包括读者的相关信息,添加的读者图书卡编号、邮箱、证件号码及电话号码不能与已存在的读者信息重复,否则会提示添加失败。

5.1.3 添加读者信息

当点击添加读者信息时,首先判断该管理员是否有读者档案管理权限,验证成功后,在右边会显示readerAdd.jsp页面,否则会转到欢迎页面即right.jsp页面,在readerAdd.jsp页面中的表单中包括读者的相关信息,添加的读者图书卡编号、邮箱、证件号码及电话号码不能与已存在的读者信息重复,否则会提示添加失败。

5.1.4 删除读者信息

当点击删除读者信息时,首先判断该管理员是否有读者档案管理权限,验证成功后,在右边会显示readerDelTao.jsp页面,否则会转到欢迎页面即right.jsp页面,在readDelTao.jsp页面的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到readerDelCha.jsp页面,显示相关读者的信息和删除按钮,单击删除,转到readDel.jsp页面,该页面包括姓

名、图书卡号、证件号码、确定和返回按钮,点击确定,若删除成功,则提示删除成功提示,然后转到readerDelCha.jsp页面,单击返回则转到readerDelCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到readDelTao.jsp页面。

5.1.5 修改读者信息

当点击修改读者信息时,首先判断该管理员是否有读者档案管理权限,验证成功后,在右边会显示readxiutiao.jsp页面,否则会转到欢迎页面即right.jsp页面,在readxiutiao.jsp页面的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到readerMod

ifyCha.jsp页面,显示相关读者的信息,该页面包括读者的相关信息及修改按钮,单击修改按钮,会转到readModify1.jsp页面,该页面表单包括读者姓名、性别、图书卡号、读者类型、出生日期、证件类型、证件号码、电话、Email、备注、确认和返回按钮,点击确认按钮时,修改时,证件号码、电话、Email不能与已存的读者相同,否则会弹出相关提示错误信息,若修改成功会弹出修改成功对话框,单击确定按钮,会定位到readerModifyCha.jsp页面,否则弹出修改失败对话框,点击返回按钮,会转到readerModifyCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到readxiutiao.jsp页面。

5.2图书管理的设计

该图书管理包括图书类型管理、图书档案管理、添加图书信息、删除图书信息和修改图书信息。

5.2.1 图书类型管理

当点击图书类型管理时,首先判断该管理员是否有图书管理权限,验证成功后,在右边会显示bookType.jsp页面,否则会转到欢迎页面即right.jsp页面,bookType.jsp页面的表单中包括图书类型名称、可借天数、添加图书类型信息、修改和删除。当点击添加图书类型信息时会转到bookTypeAdd.jsp页面,该页面表单包括图书类型名称、可借天数、确认和关闭按钮,点击确认按钮时,若添加成功会弹出添加成功对话框,否则弹出添加失败对话框,点击重置按钮,会恢复bookTypeAdd.jsp页面,点击关闭按钮,则返回bookType.jsp页面。点击修改按钮时,会转接到bookTypeModify.jsp页面,该页面表单包括读者类型名称、可借天数、确认和关闭按钮,点击确认按钮时,若修改成功会弹出修改成功对话框,否则弹出修改失败对话框,点击关闭按钮,则返回bookType.jsp页面。单击删除按钮时,转到bookTypeDel.jsp页面,该页面包括图书类型名称、确定和返回按钮,点击确定按钮,若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回bookType.jsp页面。

5.2.2 图书档案管理

当点击图书档案管理时,首先判断该管理员是否有图书档案管理权限,验证成功后,在右边会显示bookDangAnM.jsp页面,否则会转到欢迎页面即right.jsp页面,在

17

bookDangAnM..jsp页面的表单中包括图书的详细信息、修改、删除和档案管理。当点击修改按钮时会转到bookModify.jsp页面,该页面表单包括图书的详细信息、修改和返回按钮,点击修改按钮时,修改时,图书条形码是不可修改的,若修改成功,则会弹出修改成功对话框,否则弹出修改失败对话框,点击返回按钮,会转到bookDangAnM.jsp页面。当点击删除按钮时,转到bookDel.jsp页面,该页面包括图书名称、图书条形码、确定和返回按钮,点击确定按钮,若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回bookDangAnM.jsp页面。当点击档案管理时,会转到DangAnM.jsp页面,该页面包括一个Spry面板,包括三部分,分别为删除图书信息、修改图书信息和添加图书信息。点击修改图书信息菜单时,面板的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到bookModifyCha.jsp页面,显示相关图书的信息,该页面包括图书的相关信息及修改按钮,单击修改按钮,会转到bookModify.jsp页面,该页面表单包括图书的详细信息、修改和返回按钮,点击修改按钮时,修改时,图书条形码是不可修改的,若修改成功,则会弹出修改成功对话框,否则弹出修改失败对话框,点击返回按钮,会转到bookModifyCha.js页面。点击删除图书信息菜单时,该面板的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到bookDelCha.jsp页面,显示相关图书的信息和删除按钮,单击删除,转到bookDel.jsp页面,该页面包括图书名称、图书条形码、确定和返回按钮,点击确定按钮,若删除成功会弹出删除成功对话框,否则弹出删除失败对话框,点击关闭按钮,则返回bookDelCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到DangAnM.jsp页面。

5.2.3 添加图书信息

当点击添加图书信息时,首先判断该管理员是否有图书档案管理权限,验证成功后,在右边会显示bookAdd.jsp页面,否则会转到欢迎页面即right.jsp页面,在bookAdd.jsp页面中的表单中包括图书的相关信息,添加的图书条形码不能与已存在的图书重复,否则会提示添加失败。

5.2.4 删除图书信息

当点击删除图书信息时,首先判断该管理员是否有图书档案管理权限,验证成功后,在右边会显示bookDelTao.jsp页面,否则会转到欢迎页面即right.jsp页面,在bookDelTao.jsp页面的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转到bookDelCha.jsp页面,显示相关图书的信息和删除按钮,单击删除,转到bookDel.jsp页面,该页面包括图书条形码、图书名称、确定和返回按钮,点击确定,若删除成功,则提示删除成功提示,然后转到bookDelCha.jsp页面,单击返回则转到bookDelCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到bookDelTao.jsp页面。

5.2.5 修改图书信息

当点击修改图书信息时,首先判断该管理员是否有图书档案管理权限,验证成功后,在右边会显示bookModifyTao.jsp页面,否则会转到欢迎页面即right.jsp页面,在

bookModifyTao.jsp页面的表单中包括下拉列表、文本框和查找按钮,单击查找按钮,会转

到bookModifyCha.jsp页面,该页面包括图书的相关信息及修改按钮,单击修改按钮,会转到bookModify.jsp页面,该页面表单包括图书的相关信息、确认和返回按钮,点击确认按钮时,修改时,图书条形码不能与已存的读者相同,否则会弹出相关提示错误信息,若修改成功会弹出修改成功对话框,单击确定按钮,会定位到bookModifyCha.jsp页面,否则弹出修改失败对话框,点击返回按钮,会转到bookModifyCha.jsp页面。当所选方式与填写的内容不符时,会弹出相关查找失败对话框,单击确定重新定位到bookModifyTao.jsp页面。

5.3 读者模块

5.3.1 布局方式

整个系统的布局采用T字型框架,背景色时庄重的蓝色,该框架是由三个jsp页面构成,分别为:rtop.jsp,rright.jsp和rleft.jsp,其中rtop.jsp为框架的标头,rright.jsp作为框架的可编辑区域,rleft.jsp作为正各框架的导航栏,在运行过程中是不变的。

rleft.jsp页面的设计:左侧框架分为上下两部分,上部分导航栏采用折叠式面板,包括8大模块:图书档案、图书查找、图书排行榜、我的借阅、修改个人资料、更改密码、公告、退出系统。

rtop.jsp页面的设计:作为该图书馆的logle,提示是哪位读者登陆的本系统,右侧添加了快速退出该系统的按钮。

right.jsp页面的设计:该部分是可编辑的,根据点击的菜单按钮会显示相关的页面,达到人性化设计的需求。

5.3.2 具体界面设计

(1)登录界面:

该登录页面采用的背景颜色为浅绿色,使用了Spry菜单栏,在表单中添加了一个表格,包括的文本框为用户名和密码,提交按钮为登录,注册和关闭。若读者登录成功则转发到rMain.jsp页面,否则提示登录失败对话框。当读者提交表单时,会把相应的信息提交给相应的Servlet,JavaBean处理完成后,由Servlet转发给相应的jsp页面,在Servlet中使用了相应的JavaScript验证,以此弹出相应的提示对话框。

(2)图书查找界面: 当点击查找图书信息时,在bookModifyTao.jsp页面的表单中包括下拉列表、文本框和

查找按钮,单击查找按钮,会转到bookModifyCha.jsp页面,该页面包括图书的相关信息 (3)读者排行界面:

根据借阅的次数显示图书排行信息,包括图书条形码、图书名称、图书类型、书架、出版社、作者、定价、借阅次数。

(4)借阅情况界面:

显示自己的借阅信息,包括:图书条形码、图书名称、作者、借阅时间、应还时间。 (5)图书馆简介界面:

显示图书馆的信息,包括:图书馆名称、馆长、联系电话、联系地址、联系邮箱、图

19

书馆网址、建馆时间、图书馆简介。

(6)个人资料修改界面:

当点击修改读者信息时,右边会显示相关读者的信息,包括读者姓名、性别、图书卡号、读者类型、出生日期、证件类型、证件号码、电话、Email、备注、确认和返回按钮,点击确认按钮时,修改时,证件号码、电话、Email不能与已存的读者相同,否则会弹出相关提示错误信息。

(7)修改密码界面:

点击更改口令菜单,进入pwdModify.jsp页面,在pwdModify.jsp页面的表单中包含用户名称、原密码、新密码、确认密码、重置和保存按钮。若修改成功,则会相应弹出“修改操作成功!”对话框,点击确定,则会重新定位到pwdModify.jsp页面。若填写的用户名和密码与数据库的相应记录不对应,则会相应弹出“您的原密码不正确”对话框,点击确定,则会重新定位到pwdModify.jsp页面。若填写的新密码与确认密码不相同,则相应弹出“你的新密码与你的确认密码不一致”对话框,点击确定,则会重新定位到pwdModify.jsp页面。

第6章 系统实现

6.1 登录模块实现

登录模块用到了jsp的一个重要内置对象session,将登录的管理员保存在里面便于以后的操作。管理员不需要注册,由级别更高一级的进行添加,被添加的管理员和权限分别保存在tb_manager表和tb_purview表中。管理员点击登录按钮通过表单提交到ManagerL oginServlet,创建一个Manager对象,将管理员提交的姓名、密码保存在该对象中。在类DataGet中创建一个List列表,列表中保存的数据类型为Manager,通过isZCIncludeGLY()方法返回一个列表,该方法通过sql语句从tb_manager表中获得管理员记录,用for循环依次判断List列表中保存的对象的姓名与密码和管理员输入的是否一致,如果一致将该对象的flag设置为OK,并且给该对象的id赋值为List列表中保存的id值。否则设置为NO。判断是否登录成功的标志就是用if语句,如果flag的值为OK,表示成功转发到主界面,并且将该管理员保存到session中,否则为失败转发到登录界面。

6.2 读者管理模块

6.2.1 读者类型管理的实现

(1)添加读者类型的实现:

管理员点击添加的确认按钮时,将输入的类型名称和可借数量通过表单提交到

ReaderTypeAddServlet中,首先创建一个ReaderTypeBorrowNumber 类型的对象,将类型名称和可借数量保存在里面,添加读者类型时需要通过IsExistReaderType( )方法来判断该读者类型是否已存在,该方法通过sql语句在tb_readertype表查找该名称,如果找到将flag标志设置为true,否则设置为false。当返回值为false时,调用addReaderType( )方法将记录插入到数据库中,该方法接受一个参数,ReaderTypeBorrowNumber 类型的对象,通过sql语句完成。

(2)修改借阅天数的实现:

管理员点击修改按钮时将输入的类型名称和可借数量通过表单提交到 ReaderTypeEditServlet中,首先创建一个ReaderTypeBorrowNumber 类型的对象,将类型名称和可借数量保存在里面,然后调用editReaderTypeBorrow( )方法,该方法将上述对象传过去,通过sql语句修改tb_readertype表中的数据。

(3)删除读者类型的实现:

读者类型的删除有限制,考虑到读者借书需要判断读者类型。根据类型不同可借的数量也不同,如果贸然删除了某种读者类型可能会造成错误。管理员点击删除按钮时将输入的类型名称和可借数量通过表单提交到ReaderTypeDelServlet中,删除之前要调用

ReaderTypeDelServlet( )进行判断,该方法有一个参数读者类型,通过sql语句在tb_reader表中查找该类型,如果某条记录有此类型返回true,否则返回false。当返回false时,就调

21

用delReaderType( )方法,该方法接受一个参数读者类型名称,通过sql语句删除表tb_readertype中的相关记录。

6.2.2 添加读者的实现

当管理员点击添加读者的按钮时,将输入的姓名、性别、图书卡号、读者类型、出生日期、有效证件、证件号码、电话、email、备注通过表单提交到AddReaderServlet中,首先创建一个Reader类型的对象,将以上参数赋值给该对象,在添加读者时必须考虑到图书卡号、证件号码、电话、email的唯一性,如果tb_reader表中的某条记录包含这几种字段,则输入有误不能进行对该读者的添加,这里用到一个函数IsExistReader( )进行判断,该函数接受两个参数:读者卡号和查询语句,该方法通过sql语句在表tb_reader中进行查找,找到flag设置为true,否则设置为false,如果返回false调用addReader( )方法,该方法接受一个参数Reader类型的对象,通过sql语句将该对象插入到tb_reader表中。

添加读者要输入添加读者的操作员,还有添加时间,为了体现系统的人性话、方便快捷,系统可以默认添加到数据库中,将管理员登录时保存的session取出,强制类型转化为Manager型,通过getName( )方法获得管理员姓名。添加时间则用到了DoTime类的

getBookIntTime( )方法,该方法获得系统时间并通过简单日期格式化类转化为想要的固定格式。

6.2.3修改读者的实现

当管理员点击修改读者的按钮时,将修改后的该读者的姓名、性别、读者类型、出生日期、有效证件、证件号码、电话、email、备注通过表单提交到EditReaderServlet,首先创建一个Reader类型的对象,将以上参数赋值给该对象,在执行修改之前也要对提交的信息进行判断,考虑到图书卡号、证件号码、电话、email的唯一性,如果tb_reader表中的除了该条记录的某条记录也包含对应的信息,则修改有误,这里同样用到了IsExistReader( )方法进行判断,只不过传递的select语句where条件有所改变。

6.2.4 删除读者的实现

当管理员点击删除读者的按钮时,将要删除的读者的读者卡号通过表单提交到

DelReaderServlet,调用DelReader( )方法,该方法接受参数读者卡号,通过sql语句删除表中相应的记录。

6.3 图书管理模块的实现

图书管理模块包括:图书类型管理的实现、添加图书的实现、修改图书信息的实现、删除图书的实现,这些实现过程与读者管理模块的实现过程类似,不再重复介绍。

6.4 退出模块的实现

当点击退出系统,执行ExitSystemServlet 中的doGet( )方法,移除掉当前登录用户,转发到登录页面,用户需要再次登录才可以进入到主界面。

6.5 读者模块

读者的登录模块、退出模块、查找图书模块、查看个人借阅信息、查看图书借阅排行榜与管理员的类似,不再重复介绍。

6.5.1 读者注册的实现

读者如果想登录到该系统需要进行注册,只有被管理员添加到数据库中的读者才有权限注册,这时读者需要根据自己所办理的图书卡信息进行注册,点击注册按钮时将用户注册的信息通过表单提交到ReaderZCServlet,创建一个ReaderLogin对象,将用户提交的用户名、密码、读者卡号保存在该对象中,调用IsExistBarcode( )方法进行判断,该方法接收一个参数读者卡号,通过sql语句查询tb_reader表中是否存在该读者卡号,如果有则将标志flag设置为true,否则设置为false,如果有权限注册进而判断输入的密码与确认密码是否一致,如果一致通过调用judgeReaderLogin( )方法判断该用户名与密码是否已被注册,该方法接受两个参数,用户名和密码,通过sql语句查询tb_readerLogin表的某条记录是否存在该用户名与密码只要某条记录的用户名与密码有一项不满足就可以注册。

6.5.2 读者更改密码的实现

读者的用户名是昵称,所以用户名与密码都可以修改,读者点击修改按钮时,将输入的原密码,新密码,确认密码提交到systemServlet,先判断新密码是否等于确认密码,如果不相等就不能更改,相等再调用judgeReaderLogin( )方法,该方法接受两个参数,用户名和密码,通过sql语句查找出tb_readerLogin表中是否存在相同的用户名或密码,如果有设置标志flag为true,否则设置标志为false,如果该标志返回为false,则调用readerModify( )方法,该方法接受三个参数,用户名,密码,读者卡号,通过sql语句对数据库中的表的相应记录进行修改。

6.5.3 读者修改个人资料的实现

读者修改个人资料与管理员修改读者资料大致一样,但有不同之处,当读者登录时用到的是昵称而非真实姓名,因为可能存在同名的读者,并且考虑到系统的安全性只能使用昵称登录,这就要找出真实的要修改的读者,通过读者登录时保存的session,取出登录者的图书卡号从而确定出真实的读者,这里要调用isZCIncludeReader( )方法,该方法接受参数图书卡号。在该方法中首先创建一个Reader对象,通过sql语句在tb_reader表中查找出相应记录,并赋值给该对象,该对象通过isZCIncludeReader( )方法返回,在jsp页面上显示读者的信息,当读者点击修改的按钮时,将修改后的姓名、性别、读者类型、出生日期、有效证件、证件号码、电话、email、备注通过表单提交到EditReaderServlet,在该Servlet中首先创建一个Reader类型的对象,将以上参数赋值给该对象,在执行修改之前也要对提交的信息进行判断,考虑到图书卡号、证件号码、电话、email的唯一性,如果tb_reader表中的除了该条记录的某条记录也包含对应的信息,则修改有误,这里同样用到了IsExistReader( )方法进行判断,只不过传递的select语句where条件有所改变。

23

结 论

以往的很多图书馆管理系统存在着功能不全,操作复杂,系统要求高等一系列问题,这些问题在本系统中都得到解决,本系统实现了对图书、读者、管理员的高效、正确管理。

通过这次毕业设计我不仅学习了JSP,而且技术素质和实践能力有了进一步的提高,对提出问题、思考问题与解决问题有了进一步的深刻认识。通过自己的努力思考、学习研究与指导老师的认真指导,使自己的能力得到了进一步锻炼与提高。

但因为本系统比较大,而且在本项目开始的时候,在Java和JSP应用程序设计方面不太熟悉,再加上毕业设计的时间有限,许多方面在下一步的工作中还需要进一步改进和完善。主要针对以下几方面:

(1)尽量采用满足模式要求的框架开发,分离表示层和事物层,使系统具有高的可重用性和适应性以及良好的可维护性。

(2)系统的某些设计的可扩展性并不十分理想,在以后的系统维护过程中,使用重构方法对系统进行重构,使系统的设计日益趋于更强的可扩展性。

(3)多开发和使用JSP标签,它可以非常紧密地和JSP的表示逻辑联系在一起,同时又具有和普通MyEclipse工具处理,采用连接Tomcat将会提高系统的开发速度。

系统还有待于进一步完善,只进行了对相关信息的最基本的管理,随着计算机技术的飞速发展,应将各个图书馆的图书进行联网交流,使读者可以远程查询图书馆的藏书等信息,还应开发对电子书的管理,形成网上图书资源共享平台,使读者可以在线阅读电子书资料,并设置用户权限,使管理员可以上传图书资料信息,高级用户可以下载网上电子书资源,从而实现信息资源最大化被共享。

经过两个月的不断学习和设计开发加上老师同学的帮助,终于完成了我的毕业设计,在开题报告阶段我参阅了大量的中外文献,对所开发系统的现状,国际发展情况以及未来发展趋势有了深入的了解; 在整个系统的需求分析过程中对开发前期工作地流程步骤有了深入的掌握;在开发过程我进一步学习了Java的基础语法。在编写过程中也规范了许多编码习惯,数据库设计阶段我尝试了几个不同版本的数据库,它们在配置操作上各有不同,又各有优缺点,在它们的一些基本操作上也有了进一步提高。在配置开发工具过程中对Tomcat和MyEclipse的连接部署有了清晰地认识,对开发JSP程序的步骤框架页有了总体性认识。

在整个系统开发的过程中,我学到了很多新的知识,以前学过的许多知识点在运用过程中也有了更为深入的分析,这是我大学期间做过的规模最大的项目,在这个过程中也体会到了如何将书本知识转化到实际的应用中。

致 谢

通过这次毕业设计,我学到了很多东西,既包括知识、技术还包括做人做事的道理, 我要感谢我的毕业设计指导老师马金霞老师,是您严谨地治学,适时地督促,不断地指导使我顺利完成了我的毕业设计,在整个毕业设计期间您不断地给予我帮助和指导使我不止完成了我的设计任务还学到了很多相关的专业知识,老师不但经验丰富知识领域宽广而且和善可亲,在完成毕设的过程您不但教授了我很多专业知识,还为我的未来发展学业工作提出了很多宝贵的意见,我们不但是亲切的师生,也是彼此的朋友,在我整个毕业设计的指导过程中您给我的印象就是认真负责,在这里我想对我可敬可亲的马老师说一声:“谢谢!”

非常感谢我的同学们我的老师们对我的帮助,是你们给我提出许多关键性的意见和建议,使我对整个毕业设计的思路有了总体的把握,并耐心地帮我解决了许多实际问题,使我获益良多。是你们教授了我丰富的知识,教会了我学习知识的能力,特别感谢张素苹同学对我的容忍。

最后,谢谢我的母校对我的教育,我将以更加饱满的热情投入到下一阶段的学习中去,充实自己,完善自己,向着自己的目标不断地前进,用我的所学去实现我心中的梦想!!!

祝愿所有人一切顺利!

参考文献

25

[1] 王新辉。基于C/S和B/S模式架构的图书管理系统设计。湖南人文科技学院学报,2005。

[2] 王蔚。基于J2EE技术的混合模式图书馆管理系统的应用研究。图书馆学刊出版社,2007。

[3] 吴其庆。JAVA模块设计实例经典。北京:冶金工业出版社,2004。 [4] 萨师煊,王珊。数据库系统概论。高等教育出版社,1997。

[5] Herbert Schildt。JAVA2参考大全。北京:清华大学出版社,2002。 [6] 吴其庆。JSP编程思想与实践。冶金工业出版社,2003。 [7] 杨俊生,唐琳。JSP开发技术。清华大学出版社,2011。

[8] 温谦。HTML+CSS 网页设计与布局。清华大学出版社,2000。

[9] 周桓,王殊宇。JSP 项目开发全程实录。清华大学出版社,2007。 [10] 张银鹤,刘治国。JSP 完全学习手册。清华大学出版社,2008。 [11] 王珊,萨师煊。数据库系统概论。高等教育出版社,,2010。

[12] 杨树林,胡洁萍。Java语言最新实用案例教程。清华大学出版社,2010。

因篇幅问题不能全部显示,请点此查看更多更全内容