图书馆管理系统数据维护子系统
当前位置:首页计算机论文计算机应用 → 文章内容

图书馆管理系统数据维护子系统

减小字体 增大字体 作者:佚名  来源:不详  发布时间:2012-4-18 15:24:55


778论文在线编辑整理全文

第一章  绪   论
1.1  选题背景与意义
二十一世纪是信息高度交流与发展的时代,而计算机系统则在信息时代扮演着极为重要的角色,随着计算机的不断发展,计算机已渗透到各个领域,图书馆也不例外,图书馆计算机化已不容迟缓。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。由于图书馆主要从事大量图书资料的储存和流通。所以长期以来,用手工的方式对图书馆图书信息进行管理,效率低、工作量大。这种管理方式严重阻碍教务管理科学化、高效化的进程。
高校图书馆是高校最大的信息源,是高校发展的关键。在现代大学图书馆管理中,如何方便快捷地为读者提供服务,提高图书馆的利用率等问题已经变得越来越突出。借助网络,为图书馆建立一个信息管理系统,给读者提供一个电子平台,将大大提高图书馆的管理水平和现代化程度。
通过计算机管理系统在高校图书馆中的使用,真正实现了多机制的管理方式,使管理者随时掌握图书的状态,维护图书,提高工作效率,方便图书的管理。这从根本上使工作规范化,即管理工作基于工作流程,完全采用计算机技术处理图书管理工作,使管理工作人员方便快捷地共享、交流信息,同时又能实现迅速、全方位的信息采集、信息处理。计算机管理系统检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点,能够极大地提高图书馆管理的效率,也是学校的科学化、正规化管理的重要条件。
1.2  图书馆现状分析
目前很多大型的图书馆已经有了一整套比较完善的信息管理系统,但在一些小型图书馆中,大部分工作仍需由手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态、及时地调整图书结构。为了更好的满足当前读者的借阅要求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。
图书馆信息化和数字化已经是高校图书馆现代化的一个重要标志。图书馆管理信息系统作为图书馆开展业务工作和读者服务的基础,在相当大的程度上代表和体现了图书馆自动化的水平,利用现代计算机网络技术和数据库开发技术建立图书馆管理系统,规范图书资料、多媒体信息的管理,提高信息流通的便捷性和时效性,并能够最大限度地利用现有图书馆的各种资源及场地,更好得为教学、科研服务。目前,图书馆管理软件的体系结构多为C/S模式,这种模式经过几年的发展已经比较成熟,但其缺陷也很明显,客户维护运行成本高,跨平台及伸缩性差。因此,现在随着网络快速不断的发展,B/S模式的图书馆管理系统越来越受到人们的青眯。与大多数C/S体系结构的管理系统相比,B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。基于B/S的图书馆管理系统将能更加有效地服务于各个高校的图书馆
1.3  系统功能结构图
分析图书馆管理系统的业务流程以及功能需求,将系统简化分成多个子系统模块。如图1.1所示:
 
图1.1  图书馆管理系统功能结构图
1.4  论文内容概述
本论文主要以图书馆管理系统的分析设计和实现这两部分为出发点来进行编写的。
一:对图书馆管理系统进行了总体分析。详细介绍了系统开发的目标,对图书馆的业务需求和业务流程进行了需求分析,概要设计了系统功能模块、开发架构以及相应的UML,详细设计了系统数据库。在分析设计过程中,全面详细地介绍了开发整个图书馆管理系统的内容。
二:在系统实现中,本论文重点介绍了图书馆管理系统中数据维护子系统的实现。包括:用户登入、系统设置、读者信息管理、图书信息管理、排行统计等功能模块内容。
第二章  系统开发的技术基础
2.1  Struts及MVC模式简介
Struts是Jakarta的一个子项目,是一个开源框架,它提供了一种方法可以在一个Web应用程序中同时使用Java Server Pages(JSP)和Servlet。它的目的是要解决完全由JSP或完全由Servlet实现的传统应用程序中固有的问题,例如,用JSP很难将Java代码同网页的数据显示分开,Java代码容易同html混在一起,使后期维护中工作量较大。
Struts是一个MVC框架(Model/View/Controller Framework),用于快速开发Java Web应用程序,以三层结构来开发软件项目,不但使开发结构明了,而且有助于项目的维护。Struts的重点在C(Controller)控制端,也为V(View)视图端提供了一系列定制的标签(Custom Tag)。但Struts几乎没有涉及M(Model)模型端,所以Struts可以采用Java实现的任何形式的商业逻辑。
MVC是国外用的比较多的一种设计模式,包括三类对象:Model是应用对象,也就是功能逻辑;View是在屏幕上的表示,也就是UI界面;Controller定义用户界面对用户输入的响应方式,相当于请求和应答的事件。Struts框架的MVC流程图如图2.1所示:
 
图2.1  Struts框架MVC流程图
Struts框架主要分为以下四部分:
1、模型(Model):采用JavaBean和EJB组建,设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象,由ActionForm的派生类实现对客户端表单数据的封装及简单的检验。
2、视图(View):利用Struts中提供的自定义标签库编写用户界面把应用逻辑和现实逻辑分离。View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用标签库我们可以快速建立应用系统的界面。
3、控制器(Controller):Struts为我们提供核心控制部分的实现,配置ActionMapping对象完成URI地址的映射及匹配用户表单和ActionForm类的对应关系。
 4、编辑两个配置文件:web.xml和struts-config.xml。通过它们配置Struts系统中各个模块之间的交互。
2.2  系统开发环境介绍
2.2.1  Eclipse
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。不过Eclipse 附带了一个标准的插件集,包括 Java开发工具(Java Development Tools,JDT)。此外,Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统

一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言,例如:支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
在此图书馆管理系统的设计开发过程中,我主要是通过使用eclipse3.4,添加配置tomcatPlugin,sqlexplorer_plugin,lomboz插件来构造系统开发环境
2.2.2  MySQL
MySQL是最受欢迎的开源SQL数据库管理系统,它是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
(1)数据库管理系统。数据库是一个结构化的数据集合,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个数据库管理系统(DBMS),MySQL完全具有这方面的功能。
(2)关系型数据库管理系统。关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性[9]。同时,MySQL作为一种关系型的数据库系统,支持标准的结构化查询语言(Structured Query Language)。
(3)开放源码数据库。同商业性的数据库相比,这是MySQL最大的特点。由于源码的公开,这就意味着任何人,只要遵守GPL的规则都可以对MySQL的源码使用、修改以符合自己特殊的需求。
2.2.3  Tomcat
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在 Tomcat中得到体现。
与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织,通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能,处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让 Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。
Tomcat也可以与其它一些软件集成起来实现更多的功能。如与JBoss集成起来开发EJB,与Cocoon集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用等等。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,同时,由于它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能,因此,如今tomcat已成为开发和调试JSP程序的首选。
Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视。
2.2.4  PowerDesigner
PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。PowerDesigner主要有4种模型文件:
(1)概念数据模型 (CDM):表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。
(2)物理数据模型 (PDM):叙述数据库的物理实现。
(3)面向对象模型 (OOM):一个OOM包含一系列包,类,接口以及他们的关系。这些对象一起形成一个软件系统的逻辑的设计视图的类结构。一个OOM本质上是软件系统的一个静态的概念模型。
(4)业务程序模型 (BPM):描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。
PowerDesigner提供了一个完整的建模解决方案,业务或系统分析人员,设计人员,数据库管理员DBA和开发人员可以对其裁剪以满足他们的特定的需要。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一个特定的方法学。此外,还提供了直观的符号表示使数据库的创建更加容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。
PowerDesigner不仅加速了开发的过程,也向最终用户提供了管理和访问项目的信息的一个有效的结构。它允许设计人员不仅创建和管理数据的结构,而且开发和利用数据的结构针对领先的开发工具环境快速地生成应用对象和数据敏感的组件。开发人员可以使用同样的物理数据模型查看数据库的结构和整理文档,以及生成应用对象和在开发过程中使用的组件。应用对象生成有助于在整个开发生命周期提供更多的控制和更高的生产率。
PowerDesigner是一个功能强大而使用简单工具集,提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。PowerDesigner产生的模型和应用可以不断地增长,适应并随着你的组织的变化而变化。
第三章  图书馆管理系统的分析与设计
3.1  系统目标
根据图书馆现状以及存在的问题,通过结合struts MVC的特点,开发出一套可扩展性、实用性和可维护性的适合一般普通高等院校的图书馆信息管理系统,实现高校图书馆的信息化发展。高校图书馆是一个信息量流通特别大的地方,数据特别庞大,在开发该系统时必须对图书馆的业务有较强的认识与了解。同时,系统必须具有较强的模块化设计,以适应图书馆对业务的功能需求变动。
本系统的开发主

          

要实现对图书信息与读者信息的基本管理,实现对图书、读者分类管理,跟踪图书的借阅、续借、归还过程,对借阅超期进行提醒,保证数据查询的灵活性,提供密码修改确保系统的安全性,通过排行统计反映图书借阅的真实信息,灵活方便的权限设置使整个系统的管理分工明确。
此外,作为一个信息管理系统,必须考虑用户的使用习惯等。该系统界面设计友好、美观,采用人机对话操作方式,使用简单,方便管理人员的日常操作。
3.2  需求分析
3.2.1  需求描述
学校图书馆管理系统主要是用来对图书信息,读者信息以及图书借阅情况进行管理,经过对其日常工作的调查研究及管理流程的分析,本系统应具有以下功能:
1. 系统设置功能,设置图书馆内一系列基本信息,方便馆内其它管理工作。
2. 分类的读者信息管理功能,方便对读者的借阅控制。
3. 完备图书信息管理功能,用于全面管理馆内图书信息。
4. 图书借阅、续借、归还功能,用以跟踪图书借阅的总体流程。
5. 强大的查询功能,方便管理员查询各种信息。
6. 排行统计功能,帮助管理员了解读者的借阅意向。
7. 统一、友好的操作界面,用以保证系统的易用性。
 由于随着图书馆工作业务的需要,在使用的过程中可能会出现一些新的功能要求,该系统在满足实现以上功能的前提下,必须具备一定的可扩展性,以适应变化后的需求。
3.2.2  业务流程
 分析图书馆的业务流程,得到以下流程图,如图3.1所示:
 
图3.1  图书馆业务流程图

 上图主要描述了图书馆管理系统中图书借阅的业务流程,管理员必须进行读者信息管理(读者种类设置、读者信息登记)、图书信息管理(图书种类设置、出版社设置、书库设置、图书信息登记)、工作人员管理(权限设置、工作人员登记),系统可以在此基础上将这些基本信息保存到图书借阅信息表中,这就是一般图书馆管理系统的主要业务工作。
3.3  概要设计
3.3.1  功能模块设计
图书馆管理系统是一个由多个系统管理模块组成的数据库应用程序,主要包括:系统管理、图书管理、读者管理、图书借还、查询统计等模块组成。
系统设置:包括图书馆信息、管理员设置、参数设置、书库设置等功能。
图书管理:包括图书类型设置,图书档案管理等功能。
读者管理:包括读者类型管理,读者档案管理等功能。
图书借还:包括图书借阅、图书续借、图书归还等功能。
查询统计:包括图书档案、借阅查询,借阅到期提醒,借阅排行等功能。
3.3.2  系统架构设计
图书馆管理系统采用Struts框架设计,是一个轻量级架构的系统。遵循多层次的架构模式,从上到下依次为视图层、控制器层、模型层、持久化层和数据库层。其中前三层使用Struts框架实现,持久化层采用DAO模式[10],数据库层则采用MySQL数据库。如图3.2所示:
 
图3.2  图书馆管理系统层次架构

① 视图层:图书馆管理系统操作页面,通过JSP技术处理将web页面呈现给用户。
② 控制层:系统Action接收用户HTTP请求,ActionServlet通过struts-config.xml查找请求的URI所对应的action,再根据action元素的name匹配值找到相应的ActionForm。
③ 业务层:处理图书馆业务时,根据action找到相应的ActionForm之后,执行execute()方法,返回一个ActionForward对象,将请求重新定向到指定的JSP页面[11]。
④ 持久化层:采用DAO模式设计,其优势是可以将图书馆业务层与其数据库的操作分离开,对数据库的操作全部由DAO代理。如图3.3所示:
 
图3.3  图书馆管理系统DAO设计模式

⑤ 数据库层:通过使用JDBC的类包实现系统与数据层之间的联系,实现与MySQL数据库的交互,保存相关数据。
3.3.3  用例图
用例图是作为参与者的外部用户所能观察到的系统功能的模型,用来描述系统使用者与系统的交互。如图3.4所示:
读者:可以查看个人借书信息和图书馆的图书信息。
工作人员:在以下用例图中,工作人员主要负责系统中图书借阅这一模块任务。由于本系统具有较好的权限管理功能,因此,管理员可以根据实际需要对工作人员进行功能权限设置,包括:图书信息管理,读者信息管理,图书借还管理,系统查询等。
管理员:管理员具有全部权限,可以进行系统的任何操作功能。其中很重要的一个功能是对工作人员的权限进行分配管理。管理员的主要工作一般是进行系统设置。
 
图3.4  系统用例图

3.3.4  序列图
序列图是一个用于描述对象组随着时间在某些行为方面进行协作的模型,以图的形式详细描述了业务角色和业务主角之间的交互,以及如何在执行业务用例时访问业务实体。如图3.5主要描述了图书馆系统管理员添加系统用户的序列图,此外,系统中其他业务也都可以用序列图表示,这样可以清晰图书馆业务运作流程,方便系统开发。
 
图3.5  用户添加序列图
3.4  详细设计
3.4.1  系统E-R图
 E-R图,即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。图3.6详细描述了整个图书馆管理系统的实体联系关系。
 
3.4.2  数据库设计
 通过对图书馆管理系统的业务分析,使用PowerDesigner进行数据库设计,此图书馆管理系统的数据库主要由12个数据表组成,具体表设计如下所示:
表3.1  图书馆信息表(tb_library)
 

表3.2  管理员信息表(tb_manager)
 

表3.3  图书馆权限表(tb_purview)
   

表3.4  参数设置表(tb_parameter)
 

表3.5  书库信息表(tb_bookcase)
 

表3.6  图书类型表(tb_booktype)
 

表3.7  出版社信息表(tb_publishing)
 

表3.8  图书信息表(tb_bookinfo)
 

表3.9&

          

nbsp; 读者类型信息表(tb_readertype)
 

表3.10  读者信息表(tb_readerinfo)
 

表3.11  图书借阅信息表(tb_borrow)
 

表3.12  图书归还信息表(tb_giveback)
 

图书馆管理系统各数据表之间业务联系密切,很多数据表之间具有主外键关系。图3.7主要是其借还书的数据联系。此外,图书信息表、读者信息表、管理员信息表也都有各自的主外键联系。
 
图3.7  数据表主外键
第四章  图书馆数据维护子系统的实现
 本系统采用了proxool数据库连接池,这是一个Java SQL Driver驱动程序,提供了对所选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。具有透明性,开放性,标准性,易用性等特点[12],完全可配置,可以透明地为JDBC驱动程序增加连接池功能。
4.1  登入模块
 功能:用户进入系统的入口,如图4.1所示。
 用户输入用户名与密码,点确定将数据提交给login.jsp,在jsp页面找到相应的action,action通过ActionForm获取数据,然后通过DAO与数据库连接,在数据库查找相应数据以确定用户登入是否合法。
 
图4.1  登入页面

以下为系统登入信息验证的Action代码:(其中ActionForm,DAO的代码在这就省略了)
public ActionForward managerLogin(ActionMapping mapping, ActionForm form,
                              HttpServletRequest request,
                              HttpServletResponse response) {
        ManagerForm managerForm = (ManagerForm) form;
        managerForm.setName(managerForm.getName());
        managerForm.setPwd(managerForm.getPwd());
        int ret =managerDAO.checkManager(managerForm);
        System.out.print("验证结果ret的值:" + ret);
        if (ret == 1) {
            HttpSession session=request.getSession();
            session.setAttribute("manager",managerForm.getName());
            return mapping.findForward("managerLoginok");
        } else {
            request.setAttribute("error","您输入的管理员名称或密码错误!");
            return mapping.findForward("error");
        }
}

登入成功,则进入主页面,并显示权限相匹配的菜单。主菜单中每一部分都是一个功能模块。进入主页面时,系统将显示图书借阅排行信息,真实反映图书馆中图书的借阅情况。主页面如图4.2所示:
 
图4.2  主页面

 主菜单中的功能模块通过JavaScript来控制显示,系统管理员可以根据实际情况对工作人员进行这些功能模块的权限分配,当用户登入的时候只会显示有权限的那些模块内容。
4.2  系统设置模块
 本模块主要是针对系统管理员,用来对图书馆重要信息进行管理。本模块包括四部分内容,分别是:图书馆信息、管理员设置、参数设置、书库设置。
 图书馆信息:为系统以后的扩展做准备的,使外界可以很好地了解该图书馆的基本情况。如图4.3所示:
 
图4.3  图书馆信息

 管理员设置:为控制不同工作人员的权限,保证信息的安全性,如右图4.4所示:
 
图4.4  管理员设置

 为保证系统管理员不小心将自己删除而导致系统不能正常工作,将设置admin为系统默认初始管理员,通过Ja

          

vaScript脚本将控制提示任何用户、管理员(包括admin自身)都不可以对admin进行权限设置、删除操作,这样既可以保证系统的安全性,也可以保证系统的稳定性。另外,只有图书馆的管理员才知道admin账号的密码。
其中点击“权限设置”,即可进入权限设置页面,如图4.5所示:
 
图4.5  权限设置

 只有被授权,功能按钮才能在主菜单中显示,主菜单如图4.6所示:
 
图4.6  系统主菜单

图书馆管理员权限设置ManagerDAO.java,具体代码如下:
public ManagerForm query_update(ManagerForm managerForm) {
        ManagerForm managerForm1 = null;
        String sql = "select m.*,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from        tb_manager m left join tb_purview p on m.id=p.id where m.id="          +managerForm.getId() + "";
        ResultSet rs = conn.executeQuery(sql);
        try {
            while (rs.next()) {
                managerForm1 = new ManagerForm();
                managerForm1.setId(Integer.valueOf(rs.getString(1)));
                managerForm1.setName(rs.getString(2));
                managerForm1.setPwd(rs.getString(3));
                managerForm1.setSysset(rs.getInt(4));
                managerForm1.setReaderset(rs.getInt(5));
                managerForm1.setBookset(rs. getInt (6));
                managerForm1.setBorrowback(rs.getInt(7));
                managerForm1.setSysquery(rs.getInt(8));
            }
        } catch (SQLException ex) {}
        return managerForm1;
}
参数设置:为控制读者的办证费,以及有限期限,使图书馆管理制度更加优越。如图4.7所示:
 
图4.7  参数设置

书库设置:根据图书馆的实际情况反应,为图书信息的录入做前期准备。如图4.8所示:
 
图4.8  图书馆书库
4.3  读者管理模块
 本模块主要包括两部分内容:读者类型管理、读者档案管理。
 读者类型管理:对读者的类型进行分类,并且能够对不同的读者进行不同的可借书数量设置,方便对不同读者的管理。如图4.9所示:
 
图4.9  读者类型

 读者档案管理:可对读者的信息进行增加,修改和删除操作。此外,点击姓名上的超链接还能进行读者详情的查看。图4.10为读者档案信息列表。
 
图4.10  读者信息

 读者档案信息添加,如图4.11所示:
 
图4.11  读者档案信息添加

 同时,该系统可以通过Excel导入读者信息,大大减少图书馆工作人员的工作量。如图4.12所示:
 
图4.12  读者信息Excel导入
读者信息详情,通过读者信

          

息列表中的姓名超链接得到。如图4.13所示:
 
图4.13  读者信息详情
4.4  图书管理模块
 本模块主要包括三部分内容:图书类型管理、出版社管理、图书档案管理。
 图书类型管理:可设置不同类型图书的可借阅时间。如图4.14所示:
 
图4.14  图书类型

 出版社管理:为图书信息的录入做前期准备。如图4.15所示:
 
图4.15  图书出版社

 图书档案管理:可对图书的信息进行增加,修改和删除操作。此外,点击图书名称上的超链接还能进行图书详情的查看。如图4.16所示:
 
图4.16  图书信息

 图书档案信息添加,如图4.17所示:
 
图4.17  图书档案信息添加
图书信息详情,如图4.18所示:
 
图4.18  图书信息详情
4.5  业务数据维护模块
业务数据维护模块主要包括借还书数据、系统查询维护。
 借还书数据维护:图书借阅时,读者可借书量由读者类型决定,根据读者类型表中的可借天数,如果超过可借数量,则将提示不能再借阅。如图4.19所示:
 
图4.19  图书借阅

当借书量超过读者可借数量时,通过JavaScript脚本提示,代码如下:
if(form.number.value-form.borrowNumber.value<=0){
  alert("您不能再借阅其他图书了!");return;

 系统查询维护包括图书档案查询、图书借阅查询、借阅到期提醒。
图书档案查询:可使用图书条形码、类别、书名、作者、出版社、书库进行模糊查询。
图书借阅查询:支持多条件查询。
图书到期提醒:根据图书应还日期,将借阅超期的图书信息列出来,没有则提示“暂无到期提醒信息!”。如图4.20所示:
 
图4.20  借阅到期提醒

图书应还日期计算代码如下:
    String date_str=String.valueOf(date);
    String dd = date_str.substring(8,10);
    String DD = date_str.substring(0,8)+String.valueOf(Integer.parseInt(dd) + days);
    java.sql.Date backTime= java.sql.Date.valueOf(DD);

4.6  排行统计模块
 统计排行包括两部分内容:读者借阅排行榜、图书借阅排行榜。
 读者借阅排行榜:统计读者的借阅情况。如图4.21所示:
 
图4.21  读者借阅排行

读者借阅排行Borrow.java,代码如下所示:
private ActionForward readerBorrowSort(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response){
        request.setAttribute("readerBorrowSort",borrowDAO.readerBorrowSort());
        System.out.println(request.getParameter("page2"));
        request.setAttribute("page2",request.getParameter("page2")==null?0:request.getParameter("page2"));
        return mapping.findForward("readerBorrowSort");
}

读者借阅排行BorrowDAO.java,代码如下所示:
public Collection readerBorrowSort() {
String sql = "select * from (SELECT readerid,count(readerid) as degree FROM tb_borrow group by readerid) as borr join (select r.*,t.name as typename,t.number from tb_reader r left join tb_readerType t on r.typeid=t.id) as reader on borr.readerid=reader.id order by borr.degree desc limit 10";
        Collection coll = new ArrayList();
        BorrowForm form =

          

null;
        ResultSet rs = conn.executeQuery(sql);
        try {
            while (rs.next()) {
                form = new BorrowForm();
                form.setReaderId(rs.getInt(1));
                form.setDegree(rs.getInt(2));
                form.setReaderName(rs.getString(4));
                form.setSex(rs.getString(5));
                form.setReaderBarcode(rs.getString(6));
                form.setBirthday(rs.getString(8));
                form.setPaperType(rs.getString(9));
                form.setPaperNo(rs.getString(10));
                form.setTel(rs.getString(11));
                form.setReaderType(rs.getString(17));
                coll.add(form);
            }
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
        conn.close();
        return coll;
    }

 图书借阅排行榜:统计图书的借阅情况。如图4.22所示:
 
图4.22  图书借阅排行
4.7  口令管理模块
 为保证数据库中账号密码的安全,在系统开发过程中使用了des加密解密技术。当保存用户密码到数据库中时将其加密,本系统通过将奇偶位数据组合,例如在jsp页面密码框中输入123456,保存在数据库中时保存为135246。当用户登入系统时,输入密码,系统转化输入内容将其解密,然后与数据库中密码字段进行比较来确定输入的密码是否正确。同样,用户修改密码也以这种方式进行加密处理,这样可以保证系统安全,即使数据库中的密码字段被人截取也不能顺利进入系统。
第五章  总   结
经过一个学期的努力,图书馆管理系统基本开发完毕。目前,该系统基本可以实现一般图书馆的日常业务管理工作,但是由于时间及个人精力有限,以及对图书馆部分业务的不熟悉,该系统还是有一些不尽人意的地方,这些有待进一步改善。
整个图书馆管理系统的开发过程,从需求分析,概要设计,详细设计,到代码编写,我更加熟悉了系统软件开发的过程,使我提高了实际开发系统的能力,从以前的理论上升到实际,真正做到了学以致用。在整个系统的开发过程中,我碰到了很多问题,但是在个人的不断努力,以及老师同学的帮助下,问题都已经解决。
本系统采用Struts框架,MVC设计模式和DAO设计模式,JDBC连接MySQL数据库开发,具有较好的扩展性,为以后系统的维护和升级做了很好的铺垫。在系统的开发过程中我学习了这些新的JAVA知识,我发现这些框架和设计模式的强大功能,对我以后的工作生活将有很大的帮助。同时,通过对图书馆的不断分析,使我更加了解了图书馆的业务流程工作,以及图书馆的其他一些相关知识,这都将是我人生中的宝贵财富。

          

总的来说,通过这次毕业设计,我的收获是相当大的,它不仅仅是提高了我个人的程序编写能力、开发能力,更重要的是通过对系统的不断分析设计,提高了我个人独立分析问题与思考问题的能力,同时,也增强了我个人的系统设计开发能力。这对我以后的工作生活是相当有用的,我将继续不断努力。
致   谢
四年的大学生活就要画上圆满的句号了,在攻读学士学位的这段时间,我得到了许多老师、同学的帮助,在此向各位老师、同学表示我真诚的谢意!
经过一学期的努力,本次毕业设计已接近尾声。在这里我首先要感谢我的导师钱亚冠老师在我的毕业设计以及论文写作过程中所给予的悉心指导和帮助。同时,我也要真诚地感谢浙江科技学院每一位栽培过我的老师,谢谢你们在大学四年的辛勤培养,让我的大学生活变得更加充实。
其次,感谢同学们在本科期间对我的帮助和支持,特别感谢浙江科技学院理学院信息与计算科学053班的全体同学陪伴我度过这富有宝贵意义的四年。
最后,感谢我的家人对我的无比关怀与支持,谢谢你们为我所倾注的心血。

参考文献
黄梯云,李一军.管理信息系统(第3版)[M].北京:高等教育出版社,2004,10.
齐顺昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2004.
狄祥义,张跃平.JSP实用教程[M].北京:清华大学出版社,2003.
高红岩.Struts使用开发指南[M].北京:科学出版社,2007.
(美)Ted Husted.Struts in Action:Building Web Applications with the Leading Java  Framework[M].Manning Publications Co.2005,5.
陈天和.Struts,Hibernate,Spring集成开发宝典[M].北京:电子工业出版社,2007.
(美)Bruce Eckel.thinking in java 4 Edition[M].北京:机械工业出版社,2006.
王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.
[9](奥)科夫勒.MySQL5权威指南(第3版)[M].北京:人民邮电出版社,2006,12.
[10](美)(Larman,c.).UML和模式应用(原书第3版)[M].北京:机械工业出版社,2006,5.
[11](美)Vijay Srinivasan Lakshman.Document Management System using Struts[R]. Arizona State University,2006.
[12](美)Deepak Alur,John Crupi,Dan Malks.Core J2EE Patterns:Best Practices and Design Strategies,Second Edition[M].北京:机械工业出版,2005.