配色: 字号:
基于JSP与MySQL图书管理系统的设计与实现
2012-04-10 | 阅:  转:  |  分享 
  


摘要



随着网络技术的高速发展和计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行。虽然目前很多大型的图书馆已经有一套比较完整的管理系统,但是在一些中小型的图书馆中,大部分工作仍需要由手工来完成,工作起来效率比较低,管理员不能及时的了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态及时的调整图书结构。为了更好的适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步的向计算机信息化管理转变。JSP是全球最普及、应用最广泛的互联网开发语言之一,它有开放的源代码,独特的语法结构,跨平台等诸多优秀的特性。所以采用JSP语言结合开源的MySQl数据库开发一套中小型的图书馆管理系统能够有效的解决学校图书馆存在的各种问题,使图书馆能够更好的服务师生。

关键词:图书馆管理系统,JSP,MySQL,软件工程

Abstract:

Withtherapiddevelopmentofnetworktechnologyandthepopularizationofcomputerapplications,computerwasusedtomanagethedailyworkofthelibraryisimperative.Althoughmanylargelibrarieshaveasetofrelativelycompletemanagementsystem,butinsomesmallandmediumsizedlibraries,themajorityofworkisstillneededtocompletebyhand,workingupandefficiencyisrelativelylow,theadministratorcannotbetimelyunderstandingofthelibrarythesituationofdifferentcategoriesofbooksborrowed,readersneedbooksinashorttimeisdifficulttofind,noteasytoadjustthedynamicandtimelybookstructure.Inordertobetteradapttothecurrentreader''sborrowingneedsandsolvemanyofthemanualmanagementshortcomingsexistinagrowingnumberofsmallandmediumsizedlibrariesaregraduallychangingthecomputerinformationmanagement.JSPistheworld''smostpopular,themostwidelyusedlanguageoftheInternetdevelopment,ithasopensourcecode,auniquegrammaticalstructure,cross-platform,andmanyotheroutstandingfeatures.Therefore,useofopen-sourceJSPlanguagewithasetofdatabasedevelopmentforsmallandmediumMySQllibrarymanagementsystemcaneffectivelysolvethevariousproblemsinschoollibrariessothatlibrariescanbetterserveteachersandstudents.

Keywords:LibraryManagementSystem,JSP,MySQL,SoftwareEngineering





目录



摘要 I

1绪论 -1-

1.1研究背景 -1-

1.2国内外图书馆管理系统发展情况 -1-

1.3开发图书馆管理系统的意义 -1-

1.4本文研究路线 -3-

1.5系统开发基本目标 -3-

1.6系统开发设计思想 -3-

2图书管理系统的基本原理 -4-

2.1认识JSP -4-

2.2Struts与Hibernate简介 -6-

2.3MySQL简介 -8-

2.4B/S简介 -9-

2.5TOMCAT简介 -9-

2.6本章小结 -10-

3图书管理系统分析与总体设计 -11-

3.1系统需求简介 -11-

3.2系统功能结构 -11-

3.3数据库设计 -13-

4系统的主要功能实现 -19-

4.1系统概览 -19-

4.2开发技巧与难点分析 -21-

4.3系统模块设计 -22-

4.4本章小结 -25-

5系统测试使用 -26-

5.1安装及配置 -26-

5.2系统介绍 -26-

5.3系统测试 -27-

6探索与提高(结论) -29-

谢辞 -30-

参考文献 -30-



1绪论



1.1研究背景国内外发展情况计算机的出现给人类社会带来了第三次工业革命,计算机和计算机网络已经深入到了各行各业,各个领域,随着nternet的不断扩大和发展,电脑网络“把每一个国家、每一个城市甚至每一个家庭连接到一起”,形成了一条“信息高速路”,就像高速公路大大提高了车辆行驶的速度一样。信息高速路给生活、学习和工作带来了什么影响呢?总结起来主要有三点:第一,电脑网络可以查阅信息,迅速而便捷地了解周围的世界;第二,可以跟世界各地的人随时进行交流,并建立联系;正是由于有了这么一条信息高速路,网上查询随之有可能,因此网上也迅速地发展起来,也因此给我们的生活带来很多方便。当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。

1.4本文研究路线



本系统将以课本和一些课外书籍为参考,按照毕业设计老师的作业要求,从系统开发背景→业务流程分析→数据流分析→功能模块设计→数据库设计→输入输出设计→系统部署一步步对系统进行分析和设计。



1.5系统开发基本目标



1.该系统开发的总体任务是实现新闻信息管理的系统化,规范化的自动化。

2.系统对永久记录的文件实现归档管理,支持高效率完成新闻信息管理的各项任务。

3.确定在一定的时间内能完成预定的程序功能是可行性分析报告的重点。



1.6系统开发设计思想



尽量采用学校现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用学校现有的资源,提高系统开发水平和应用效果的目的。

系统采用模块化程序设计方法,既便于系统各子功能的组合和修改,又便于未参与开发的技术维护人员进行补充、维护。

系统应具备数据库维护功能,及时根据用户需求进行数据的添加,删除。

系统应符合学校对新闻的管理流程满足学校对新闻信息的管理需要,并达到操作过程中的直观,方便,实用,安全等要求。



2图书管理系统的基本原理



2.1认识JSP



JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。



2.1.1JSP技术的优势



为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。

1.将内容的生成和显示进行分离

用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。

在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。

2.可重用组件

绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

3.采用标识

Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。

4.适应平台

几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。

5.数据库连接

Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。

此外,通过开发标识库,JSP技术可以进一步扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。

JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。



2.1.2JSP应用模型



利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。

JSP页面通常被编译成为JavaServlets,这是一个标准的Java扩展。页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个JavaServlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题)。

JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。



2.1.3JSP与ASP的比较



JSP(JavaServerPage)与ASP(ActiveServerPage)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:

1.Web服务器的支持:大多数通用的Web服务器如:Apache、Netscape和MicrosoftIIS都支持JSP页面,只有微软本身的MicrosoftIIS和PersonalWebServer可以支持ASP。

2.平台的支持:JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于移植到其它平台上。

3.组件模型:JSP是建立在可重用的、跨平台的组件(如:JavaBeans、EnterprisesJavaBeans和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。

4.脚本语言:JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。

5.安全性:JSP使用Java安全模型,而ASP使用WindowsNT的安全结构。

6.与Access数据库的连接:JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用DataActiveObjects。

7.用户定制的标签:JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的。



2.2Struts与Hibernate简介



2.2.1Struts简介



Struts最早是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。

Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用。和其他的java架构一样,Struts也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs框架的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans,ResourceBundles与XML等标准技术,以及JakartaCommons的一些类库。Struts有一组相互协作的类(组件)、Servlet以及jsptaglib组成。基于struts构架的web应用程序基本上符合JSPModel2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。

Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。

Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。

除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。



2.3.1MYSQL概述

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。



2.5TOMCAT简介



Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。

3图书管理系统分析与总体设计



3.1系统需求简介



通过计算机对图书进行管理,不仅为图书馆的管理注入了新的生机,而且在运营过程中节省了大量的人力、物力、财力和时间,可以提高图书馆的效率,还为图书馆在读者群中树立了一个全新的形象,为图书馆日后发展奠定了一个良好的基础。通过对一些大型图书馆的实际考察、分析、并结合图书馆的要求以及实际的市场调查,要求本系统具有以下功能:

网站设计页面要求美观大方、个性化、功能全面,操作简单。

要求实现基础信息的管理平台。

要求对所有读者进行管理。

要求实现图书借阅排行、了解当前畅销书。

商品分类详尽,可按不同类别查看图书信息。

提供快速的图书信息、图书借阅检索功能功能,保证数据查询的灵活性。

实现图书借阅、图书续借、图书归还的功能。

实现综合条件查询,如按用户指定条件查询、按日期时间段查询、综合条件查询等。

要求图书借阅、续借、归还时记下每一笔记录的操作员。

实现对图书借阅、续借、归还过程中的全程数据信息跟踪。

提供借阅到期提醒功能,使管理员可以及时了解到已经到达归还日期的图书借阅信息。

提供灵活、方便的权限设置功能,使整个系统的管理分工明确。

具有易操作性和易维护性。

3.2系统功能结构

根据学校图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书档案管理、图书归还、系统查询等5个部分,其中各个部分的功能模块如图所示:

























系统结构图

3.2.1系统流程图







系统流程图





3.2.2系统平台选择



硬件平台:

CPU:Pentium41.8GHZ

内存:512MB及以上

软件平台:

操作系统:Windows2003/WindowsXP/Windows2000.

数据库:MySQL.

开发工具包:JDK1.6.

JSP服务器:TOMCAT6.0

浏览器:IE5.0及以上,推荐使用IE6.0.

显示器分辨率:最佳效果1024×768像素。



3.3数据库设计



3.3.1系统数据库分析

由于本系统是为中小型的图书馆开发的程序,需要充分考虑到成本问题及使用需求(如跨平台)的问题,而MySQL是世界上最为流行的开放源代码的数据库,是完全网络化得跨平台的关系型数据库系统,这正好满足了中小型企业的需求,所以本系统采用MySQL数据库。

3.3.2系统数据库概念设计

根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书档案实体、读者档案实体、借阅档案实体、归还档案实体和管理员实体。下面将介绍几个关键实体的E-R图。

图书档案实体

图书档案实体包括编号、条形码、书名、类型、作者、译者、出版社、价格、页码、书架、录入时间和操作员等属性。图书档案实体的E-R图如下图所示:





















读者档案实体

读者档案实体包括编号、姓名、性别、条形码、职业、出生日期、有效证件、证件号码、电话、电子邮件、登记日期、操作员、类型和备注等属性。读者档案实体的E-R图如下图所示:

























借阅档案实体

借阅档案实体包括编号、读者编号、图书编号、借书时间、应还时间、操作员和是否归还等属性。借阅档案实体的E-R图如下图所示:

































归还档案实体

归还档案实体包括编号、读者编号、图书编号、归还时间和操作员等属性。归还档案实体的E-R图如下图所示:























3.3.3系统数据库结构

表名:tb_bookcase



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 name varchar 30 是 表名:tb_bookinfo



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 barcode varchar 30 是 2 bookname varchar 70 是 3 typeid int 10 是 4 author varchar 30 是 5 translator varchar 30 是 6 ISBN varchar 20 是 7 price float 8 2 是 8 page int 10 是 9 bookcase int 10 是 10 storage int 10 是 11 inTime date 是 12 operator varchar 30 是 13 del tinyint 1 是 0 14 id int 11 是 是 否 auto_increment 表名:tb_booktype



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 typename varchar 30 是 3 days int 10 是 表名:tb_borrow



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 readerid int 10 是 3 bookid int 10 是 4 borrowTime date 是 5 backTime date 是 6 operator varchar 30 是 7 ifback tinyint 1 是 0 表名:tb_library



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 libraryname varchar 50 是 3 curator varchar 10 是 4 tel varchar 20 是 5 address varchar 100 是 6 email varchar 100 是 7 url varchar 100 是 8 createDate date 是 9 introduce text 是 表名:tb_manager



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 name varchar 30 是 3 pwd varchar 30 是 表名:tb_parameter



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 cost int 10 是 3 validity int 10 是 表名:tb_publishing



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 ISBN varchar 20 是 2 pubname varchar 30 是 表名:tb_purview



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 11 是 否 0 2 sysset tinyint 1 是 0 3 readerset tinyint 1 是 0 4 bookset tinyint 1 是 0 5 borrowback tinyint 1 是 0 6 sysquery tinyint 1 是 0 表名:tb_reader



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 name varchar 20 是 3 sex varchar 4 是 4 barcode varchar 30 是 5 vocation varchar 50 是 6 birthday date 是 7 paperType varchar 10 是 8 paperNO varchar 20 是 9 tel varchar 20 是 10 email varchar 100 是 11 createDate date 是 12 operator varchar 30 是 13 remark mediumtext 是 14 typeid int 11 是 表名:tb_readertype



序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 10 是 是 否 auto_increment 2 name varchar 50 是 3 number int 4 是



4系统的主要功能实现



本软件的主要目标是:

1.网站设计页面美观大方、功能全面、操作简单。

2.网站整体结构和操作流程合理顺畅、实现了人性化的设计

3.规范、完善的基础信息设置

4.对操作员设置了不同的操作权限、为管理员提供修改权限功能

5.对所有读者进行集中管理

6.对图书信息进行集中管理

7.实现图书借阅排行、以便了解当前的畅销书

8.提供快速的图书信息、图书借阅检索功能

9.实现图书借阅、图书续借、图书归还功能

10.实现综合条件查询、如按用户指定条件查询、按日期时间段查询、综合条件查询等

11.实现图书借阅、图书续借、图书归还时每一笔记录的操作员

12.提供图书到期提醒功能

13.为操作员提供信息修改功能

14.系统运行稳定、良好、可靠

系统关键技术实现:

1:采用struts与Hibernate框架进行开发

2:在jsp页面中使用struts标签

3:在控制器组件中继承DispatchAction实现多业务处理操作。

4:在JSP页面中设置分页属性值

5:在同一个数据持久化类实现多业务处理数据



4.1系统概览

学校图书馆管理系统是由多个程序页面组成,下面仅列出几个典型页面。系统登录界面如下图1所示,该页面用于实现管理员登陆。系统首页如下图2所示,该页面用于实现系统导航、图书借阅排行和版权等信息的显示。











4.2开发技巧与难点分析

4.2.1如何自动计算图书归还日期

在图书馆管理系统中会遇到这样的问题:在借阅图书时,需要自动计算图书的归还日期。

1、图书归还日期

根据图书馆还书的规律一般都以30天为一个期限,因此在图书归还时,可以设置一个固定值:即30天。计算归还日期的方法如下:

图书归还日期=“系统当前日期”+“借阅天数固定值30天”。

自动计算图书归还日期的具体代码如下:

Date(“Y-m-d”,(time()+36003430))

2、续借图书归还日期

续借图书归还日期是在原来数据库保存该图书归还日期(这个日期是不固定的)的基础上而再次借阅所计算的时间,它是需要根据数据表中的归还日期来计算的。计算图书续借归还日期的方法如下:

续借图书归还日期=“所借图书在数据表中的归还日期”+“借阅天数固定值30天”。

首先应用substr()函数分别取出所借图书在数据表中原定的归还日期“月”,“日”,“年”,然后应用mktime()函数取值计算出归还日期的时间戳,最后应用date()函数格式化日期为“YYYY-MM-DD”格式。自动计算续借日期的代码如下:

$new=$_Get[backtime];

Date(“Y-m-d”,(mktime(0,0,0,substr($new,5,2),substr($new,8,2),substr($new,0,4))+36002436));

4.2.2如何对图书借阅信息进行统计排行

在图书馆管理系统的首页中,提供了现实图书借阅排行榜功能。要实现该功能,最重要的是如何获取统计排行信息,这可以通过一条SQL语句实现。本系统中实现对图书借阅信息进行统计排行的SQL语句如下:

Selectfrom(selectbookid,count(bookid)asdegreefromtb_borrowgroupbybookid)asborrjoin(selectb.,c.nameasbookcasename,p.pubname,t.typenamefromtb_bookinfobleftjointb_bookcaseconb.bookcase=c.idjointb_publishingponb.isbn=p.isbnjointb_booktypetonb.typeid=t.idwhereb.del=0)asbookonborr.bookid=book.idorderbyborr.degreedesclimit10

下面对该sql语句进行分析

(1)对图书借阅信息表进行分组并统计每本图书的借阅次数,然后使用as为其指定别名为borr,代码如下:

(selectbookid,count(bookid)asdegreefromtb_borrowgroupbybookid)asborr

(2)使用左联接查询出图书的完整信息,然后使用as为其制定别名为book,其代码如下:

(selectb.,c.nameasbookcasename,p.pubname,t.typenamefromtb_bookinfobleftjointb_bookcaseconb.bookcase=c.idjointb_publishingponb.isbn=p.isbnjointb_booktypetonb.typeid=t.idwhereb.del=0)asbook

(3)使用joinon语句将borr和book连接起来,再对其按统计的借阅次数degree进行降序排序,并使用limit子句限制返回的行数。



4.3系统模块设计

4.3.1管理员模块

管理员模块主要包括管理员登陆、查看管理员列表、添加管理员信息、管理员权限设置、管理员删除和更改口令等6个功能。管理员模块的框架如下图所示:





























管理员模块框架图

通过以上分析,对管理员模块进行代码实现。其主要页面实现效果如下:





















其实现代码见附录中管理员模块主要代码实现。

4.3.2图书档案管理模块设计

图书档案管理模块主要包括查看图书列表、添加图书信息、修改图书信息、删除图书信息和查看图书详细信息等5个功能。图书档案模块的框架如下图所示:

图书档案模块框架图

通过对框架模块图的分析,并对其进行代码实现,实现的关键代码见附录:图书档案管理模块图的代码实现。

其实现后的界面效果如下图:



4.3.3图书借还模块设计



图书借还模块主要包括图书借阅、图书续借、图书归还、图书档案查询、图书借阅查询、借阅到期提醒等6个功能。在图书借阅模块中的用户只有一种身份,那就是操作员,通过该身份可以进行图书借还等相关操作。图书借还模块的用例图如下:

操作员可以进行图书档案查询、图书借阅、图书借阅查询、图书续借、借阅到期提醒、图书归还。

























通过以上分析,进行代码实现,关键实现代码见附录:图书借还模块的关键代码实现。

其实现效果如下图:

图书借阅图



4.4本章小结



本章系统的介绍了系统各个模块的设计过程以及系统关键技术的实现。通过介绍,用户可以清楚的了解系统的设计过程和所使用的技术。每个功能模块均单独设计,方便用户根据实际需要添加自己需要的功能。



5系统测试使用



5.1安装及配置



将db_librarySys文件夹拷贝到mysql\data文件夹下即可,如图1.1所示。



图1.1拷贝MYSQL数据库

(1)将“TM\02”文件夹拷贝到Tomcat安装路径下的webapps文件夹中。

(2)选择开始菜单中的“所有程序\ApacheTomcat6.0\MonitorTomcat”命令,这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为,则说明Tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹出的快捷菜单中选择“StartService”菜单项启动Tomcat服务器,启动后将显示为。

(3)打开IE浏览器,在地址栏中输入http://localhost:8080/,进入“Tomcat软件管理”页面。

注意:8080为安装Tomcat时设置的端口号。

(4)单击TomcatManager超链接,弹出“连接到localhost”对话框。

(5)在用户名及密码处输入登录Tomcat的用户名和密码,单击【确定】按钮。

(6)进入“Tomcat应用程序管理”页面,在此页面中单击“02”,进入本程序主页面,完成Tomcat配置。

注意:在运行本程序时,需要将Struts1.2和MySQL数据库驱动包拷贝到Tomcat安装路径下的webapps文件夹中的02\WEB-INF\lib文件夹中。

5.2系统介绍

图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等功能。项目实施后,能够提高图书馆的图书借阅、归还流程,提高工作效率。整个项目需要在两个月的时间内交付用户使用。

(1)本系统的用户名为:tsoft,密码为:111

(2)读者类型不同,可借图书的本数也有所区别。

操作流程

(1)用户登录图书馆管理系统后,可看到图书借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数等相关信息。

(2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。

(3)单击“系统设置”/“管理员设置”命令,对管理员信息进行添加、权限设置、查询及删除操作。

(4)单击“系统设置”/“参数设置”命令,对办证费用及有效期限信息进行添加操作。

(5)单击“系统设置”/“书架设置”命令,对书架信息进行添加、修改及删除操作。

(6)单击“读者管理”/“读者类型管理”命令,对读者类型信息进行添加、修改及删除操作。

(7)单击“读者管理”/“读者档案管理”命令,对读者信息进行添加、修改及删除操作。

(8)单击“图书管理”/“图书类型设置”命令,对图书类型信息进行添加、修改及删除操作。

(9)单击“图书管理”/“图书档案管理”命令,对图书信息进行添加、修改及删除操作。

(10)单击“图书借还”/“图书借阅”命令,对图书借阅信息添加操作。

(11)单击“图书借还”/“图书续借”命令,对图书续借信息进行添加操作。

(12)单击“图书借还”/“图书归还”命令,对图书归还信息进行添加操作。

(13)单击“系统查询”/“图书档案查询”命令,对图书档案信息进行查询操作。

(14)单击“系统查询”/“图书借阅查询”命令,对借阅的图书信息进行查询操作。

(15)单击“系统查询”/“借阅到期提醒”命令,对借阅到期提醒信息进行查询操作。

(16)单击“更改口令”按钮,对当前的用户密码进行修改操作。

(17)单击“退出系统”按钮,退出当前操作系统。







5.3系统测试



5.3.1测试环境

本机的硬件配置为:硬盘80G,CPU为AMD2800+,内存为512MB,操作系统为WINDOWSXP。软件环境为:数据库为MySQL,平台为Tomcat6.0。由于系统为B/S模式,因此在理论上,客户端的浏览器端只需要一般的低配置即可,使用浏览器即可访问并使用该新闻系统。由于新闻系统的数据量大等特点,因此建议服务器采用高配置以达到系统的稳定性。

5.3.2测试结果

系统在上述配置下,对本图书管理系统的每个角色对应的所有功能作出测试,结果达到了预期功能。并且该图书管理系统还具备一定的安全性与稳定性,基本符合并达到了设计目标。

5.3.3系统安全性设计

作为图书管理系统,对安全性等要求较高。因此在此系统中,采用了以下几种方法来保证考试系统的安全性。

密码的安全性

通常用户在访问普通系统时都直接使用一些简单的密码,如直接采用用户名为密码。在本系统中通过配置文件中最短密码长度minRequiredPasswordLength为8,并设置包含的特殊字符数minRequiredNonalphanumericCharacters为2,来强制要求用户使用强密码。同时在配置文件中配置passwordFormat值为”Hashed”,使得密码在存储到数据库时使用Hash算法,将密码加密存储,更进一步保证了密码的安全性。

角色访问控制

本新闻系统中,将用户分为了二种角色:管理员、普通用户,并将每个用户所能进行的操作全部放在为其专门建立的文件夹下。在每个文件夹下面添加一个子配置文件,通过设置所允许访问的角色与拒绝访问的用户,来实现基于角色的访问控制,同时也保障了系统的安全性的另一方面。

数据库安全

在数据库的安全方面,主要依赖于MySQL自身的安全性。在使用时,定期对数据库进行备份,以便数据库发生错误时将数据库恢复到之前某一已知的正确状态,实现数据库的再次正确使用。





6探索与提高(结论)



由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如功能不够全面,用户界面不够美观,对浏览器的兼容性考虑不足、出错处理不够等多方面问题。软件开发是一个不断完善的过程,只有在实际的使用过程中才能不断的发现问题,从而再加以改进。而在系统的设计过程中,难免会出现一些预测不到的异常,这些异常甚至在系统测试阶段都检查不出来,只有在用户的使用过程中才能检查出来,很多地方未能考虑周全已至系统存在着很多不足之处,这些不足主要是由于时间不足造成的。在代码设计上也存在不足,容易造成系统运行效率的降低,这就需要在以后系统维护过程中逐步发现,并不断进行升级,都有待进一步改善。

通过本次毕业设计,很好地培养了对问题的分析、解决能力,同时,独立工作能力、与人交流能力也得到了很好的锻炼。由于时间比较仓促,本系统不可避免地存在一些不足之处,例如本系统在各个浏览器兼容性方面还有待提高,这将会在以后的工作中逐渐完善。

通过毕业设计,把平常学到的编程和项目管理等知识用于实践中。加深了对编程更加深刻的认识,提升了编程和对程序的认知能力,达到了独立完成简单项目的能力。在毕业设计中对项目最深刻的感悟总结如下:

1.编程的规范化对项目设计和后期的维护都十分的重要,特别是对于大型项目的小组开发,其重要性更加的突出。

2.在项目设计时要详细到每一个函数的接口,注释要十分详细,增强代码的易读性。

3.项目架构在项目中十分重要,一个好的架构往往不仅可以使程序易读,减轻工作量,还可以减轻维护和修改。

4.当二个方案不知道如何取舍时,选择自己熟悉的或简单的方案。不要误了工作安排。写好方案设计和实施文档,当要更改时,认真仔细地写好变更文档。

5.在模块设计时,要充分考虑到本模块和其它模块之间的联系,尽量减轻各模块之间的耦合性。

6.在设计数据库时在正确设计各个表之间的关系时,要尽量让查找和操作数据库简单、安全、高效。



谢辞



在本论文写作过程中,得到了很多人的帮助,在此我要感谢所有支持我的老师,同学、朋友和所有关心我和帮助过我的人。

首先衷心地感老师,在3个多月的论文写作过程中,老师在选题和深入分析上给予我很多帮助和启示在内容上指导,如果没有老师的帮助和热心的关怀,论文的进度和质量都难以达到要求。一起走完这条路的同学们。



最后,也感谢学校的所有老师和领导,正是你们的辛勤耕耘,使我们的基础知识又一次得到了巩固,使理论能与实践相结合,不仅完成了学业,充实了自己,也更有利于我今后工作的发展。



二○一一年五月





参考文献



[1]张军.JSP网络应用开发[M].北京:清华大学出版社,2006。

[2]李建刚,秦兴桥,郑雨贝JSP网络编程技术与实践M].北京::清华大学出版社Josephj.J2EE技术内幕[M].北京:机械工业出版社,2002。

[4]孙莉.MySQL数据库技术[M].北京:中国铁道出版社,2004。

[5]吴建.JSP网络开发入门与实践[M].北京:人民邮电出版社,2006。

[6]刘中兵.JSP数据库开发实例[M].北京:电子工业出版社,2006。

[7]邓子云.JSP网络编程从基础到实践[M].北京:电子工业出版社,2005。

[8]李刚















毕业设计(论文)



基于JSP与MySQL的图书管理系统设计



-2-





-1-



吴梦丽高频保护的实现与仿真







































































献花(0)
+1
(本文系我的西庵村首藏)