基于MVC设计模式的图书管理系统的设计与开发毕业论文Word下载.docx
《基于MVC设计模式的图书管理系统的设计与开发毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于MVC设计模式的图书管理系统的设计与开发毕业论文Word下载.docx(43页珍藏版)》请在冰豆网上搜索。
结论31
参考文献32
致谢32
摘要
本课题根据当前我国图书管理多数采用人工管理的现状以及即使采用了计算机图书管理系统却不能完全满足本单位图书管理的需要的实际情况出发,对图书管理业务经过详细的系统调查,开发出的操作简单而且方便实用的一个图书管理系统。
本系统使用MyEclipse为开发工具,开发工具包采用JDKVersion1.6版本,系统用Access数据库。
本系统采用简单的实现工具和环境,主要是为了体现JSP、Servlet、和JavaBean三种技术的运用。
本软件的使用全部采用MVC设计模式,JavaBean负责执行特定功能,Servlet实现页面控制转向功能,JSP实现页面显示功能。
本系统通过测试,运行稳定,可投入使用。
关键词:
图书管理系统;
JSP;
Servlet;
;
JavaBean
ABSTRACT
ThesubjectofmybookbasedonthecurrentmanagementofthestatusofthemajorityofartificialmanagementanduseofthecomputerevenifthelibrarymanagementsystemcannotfullymeettheneedsofthelibrarymanagementunitoftheactualsituationWeofmanagementbusinessofbooks.Managementoperationsofthelibrarysystemthroughadetailedsurvey,developedasimpleandconvenientandpracticaloperationofalibrarymanagementsystemThesystemwasdevelopedusingtheMyEclipsetools,DevelopmentKitversionwithJDKVersion1.6,SystemwithAccessdatabase.Thesystemusessimpletoolsandenvironmenttoachieve,primarilytoreflecttheJSP,Servlet,JavaBean,andtheuseofthreetechniques.TheuseofthesoftwareusedinallMVCdesignpattern,JavaBeanisresponsibleforimplementingspecificfunctions,Servletsteeringcontrolfunctionstoachievethepage,JSPpagedisplaytoachieve.Thesystemtested,it’sstableandcanbereadyforuse.
Keywords:
Librarymanagementsystem;
JSP;
JavaBean
1引言
现在已进入21世纪,在这个崇尚知识的经济时代,更离不开图书,而各种各样的图书名目繁多,不便于管理。
需要个管理系统来实现图书馆信息管理功能。
与此相伴随,必有信息技术应用的高速发展。
各行各业将面临信息应用研究与发展的大课题以及信息化技术改造的大任务、大工程。
而与此不相适应的是我国图书馆信息管理相对滞后,一直以来人们使用传统人工的方式管理信息,这种管理方式存在着许多缺点。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
使用传统人工的方式管理存在着许多如下的缺点:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
这样的机制改革势在必行,因为它浪费了许多人力和物力,若实现全面的计算机管理,将会大大减轻工作人员的工作量,提高效率,为读者提供更加全面的服务。
科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。
信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。
因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。
从而使人们有更多时间来获取信息、了解信息、掌握信息。
2需求分析
2.1任务概述
建立的图书管理系统,要把图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。
随着图书量的不断扩大,学生的频繁借书和还书操作,原使的手动记账或者单机已经远远不能满足现在的需要了,即新的情况下对图书管理的要求也越来越高,特别是进入信息网络时代以后,传统的信息管理早已不能适应时代的发展,在时效性、数据流通过程中的准确性上,都已不能满足图书管理过程中的新要求,这就诞生了新的管理系统——网络图书管理系统,取代了原来的传统计算机管理系统,它采用了大型数据库,不仅保证了数据的准确性,而且提供了从借阅、归还、续借,图书销售管理等一系列新的管理方案;
人性化的设计思想,无论从界面设计,还是到系统操作流程都要比传统的操作系统更为方便、快捷;
尤为重要的是面向对象的设计思想,从根本上解决了实际管理工作中的问题。
新一代的网络图书管理系统是图书管理工作中最理想的管理工具。
2.2实现目标
以下是在图书管理系统设计后要达到的目标:
(1)在启动系统后,首先是登陆界面,根据用户输入判断用户身份是否合法。
合法用户分为普通用户和系统管理员,其中,系统管理员拥有所有权限,而普通用户没有用户管理权限。
(2)进入读者信息维护界面,可以对读者信息进行添加、删除、修改和查询操作,并且可以遍历记录。
(3)进入图书信息维护界面,可以对图书信息进行添加、删除、修改和查询操作,并且可以遍历记录。
(4)进入读者借还书界面,可以实现读者借书、还书和查阅读者借阅记录的功能,并在读者借还书时,对相应数据库数据进行修改。
(5)系统客户端运行在Windows平台下,服务器可以运行在Windows或Unix平台下。
系统还应该有一个较好的图形用户界面。
2.3用户需求分析
在实现该软件的过程中,需要实现下面几个功能。
学校的学生可以借书,但在借书操作之前,应先办理图书借阅证,借阅证的办理必须依据该生的学生证,一个学生只能办理一个借阅证。
在办理接宇宙时需要提供学生名称、学生学号和学生所在院系。
借阅证号是系统自动生成的。
当具有借阅证时,就可以在图书管理系统的帮助下,借阅图书、归还图书和查询借阅信息。
学生在借书之前,应该查询自己喜欢的图书,记住该书所具有的名称和编号,二者缺一不可。
当确定要借阅的图书后,就可以将图书借阅证交给图书管理员,图书管理员根据借阅证信息和图书信息完成借书操作。
图书管理员进行借书操作是,首先需要输入学生的借书证号,系统验证借阅证是否有效,若有效,则系统还需要检验该帐户的借阅信息,以验证借阅证借阅的图书是否超过了规定的数量,或者借阅证有超过规定借阅的图书信息,然后图书管理员输入要借阅的图书信息,系统记录一个借阅信息,并更新该学生账户完成借阅图书操作。
学生在还书时,需要借阅的图书和自己的借阅证。
图书管理员登录还书的操作界面,输入借阅证信息和书本信息。
一切无误后,可以进行还书操作。
该操作就是将表中的借书记录删除。
如果图书借阅过期,则会有相应的提示和罚款。
通过对学校图书馆的调查,了解到图书馆基本具有下面几个功能操作:
(1)借书业务
借书业务的基本业务过程是:
借书之前,首先登记学生的姓名、学号和所在院系等信息,办理图书借书证。
在借书时,先查询所要借阅的图书,然后通过图书管理员完成借书操作。
(2)还书业务
还书业务的基本任务过程是:
还书时,学生先出示借阅证,然后将所借图书还回,待管理员找到此读者的借书证并核对后,办理还书手续。
(3)删除业务
有些图书由于时间过长活借书时发送丢失的情况,图书管理员可以根据需要删除这些图书。
(4)添加借阅者
管理员根据学生提交的学生信息,可以为学生办理借阅证。
系统管理员可以在该对话框中输入学生的信息并保存,随后系统将对提交的信息进行验证,查看输入的学号是否已经存在于系统中,若不在,则为学生创建一个帐户,并存储该学生的信息。
(5)维护管理员
为了是系统能够正常运行,以及系统的安全性,系统还需要一个系统管理员进行系统的维护。
(6)查询操作
这项操作可以针对不对的用户,有借阅信息查询、图书信息查询等。
3系统开发环境
3.1运行环境
3.1.1硬件环境
客户端:
建议用户在力所能及的情况下采用较高配置的硬件资源。
服务器:
ADM处理器,1G内存,80G磁盘空间。
3.1.2软件环境
IE、Netscape等浏览器。
最好是IE浏览器,本网页在IE浏览器下通过了测试。
服务端:
1、操作系统:
windows2000XP
2、工具:
Dreamweaver8
3、数据库:
MicrosoftofficeAccess2003
4、服务器:
ApacheTomcat6.0
5、运行环境:
安装JDK1.6支持JAVA运行。
6、技术:
前台网页的设计采用JSP技术制作。
JSP以Java作为其脚本语言。
3.2JSP技术
JSP是JavaServletPage的缩写,是Servlet的简化。
它是由sun公司提出的,且许多公司共同参与制定的一种动态网页标准。
JSP是一种实现普通静态HTML和动态页面输出混合编码的技术.
JSP具备了JAVA技术的简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet的所有特点。
JSP基于强大的Java语言,具有良好的伸缩性。
JSP自身具有如下特点:
(1)将内容的生成和显示分离。
Web页面开发人也可以使用HTML或者XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本来产生页面上的动态内容。
产生内容的逻辑被封装在标识和JavaBeans群组件中,并且看捆绑在小脚本中,所有的脚本在服务器端执行。
(2)生成可重用的组件。
绝大多数JSP页面依赖可重用且跨平台的组件(如JavaBean或者EnterpriseJavaBeans)来执行应用程序所要求的更为复杂的处理。
基于组件的方法加速了总体开发过程。
(3)采用标识简化页面开发。
Web页面开发人员不会都是熟悉脚本语言的程序设计人员。
JSP技术封装了许多易用的功能,用于在与JSP相关的XML标识中生成动态内容。
[1]
JSP自产生到现在,应用越来越广泛,其相关技术也越来越多,如JavaBean,EJB等相关技术的产生,使JSP技术更容易实现Web网站的开发和控制。
一般情况下JSP的开发模式有两种。
一种是JSP+JavaBean模式,另一种是JSP+JavaBean+Servlet模式。
(1)JSP+JavaBean实现
JSP+JavaBean技术的使用,很好地实现了页面静态部分和动态部分的分离。
使用JSP技术的HTML、CSS等可以非常容易地构建数据显示页面,而对于数据出来,可以交给JavaBean技术,如连接数据库、显示数据库代码。
当执行功能代码封装到JavaBean总时,同时也达到了代码重用的目的。
(2)JSP+JavaBean+Servlet实现
JSP+JavaBean+Servlet技术组合更加显示了JSP优势,较好地实现了MVC模式。
详细介绍见下面MVC设计思想中。
[2]
3.3Servlet技术
Servlet(java服务器小程序)是用Java编写的服务器端程序,是由服务器端调用和执行的、按照Servlet自身规范编写的Java类它与协议和平台无关[3]。
Servlet是Java技术对CGI的回应。
Servlet带给开发人员最大的好处是它可以处理客户端传来的HTTP请求,并返回一个响应。
Servlet是一个Java的类,Java语言能够实现的功能,Servlet基本上都能实现。
Servlet程序在服务器端运行,动态地生成Web页面,与传统的CGI和许多其他类似CGI相比,JavaServlet具有更高的效率,更加容易使用,功能更加强大,具有更好的移植性,更节省投资。
(1)高效:
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销反而超过时间执行时间。
而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。
(2)方便:
Servlet提供了大量的实用工具例程,例如自动的解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
(3)功能强大:
在Servlet中,许多使用传统CGI程序很难完成的认为都可以轻松的完成,例如,Servlet能够直接和Web服务器交互,而普通的CGI程序则不能。
Servle还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
(4)可移植性好:
Servlet用Java编写,ServletAPI具有完善的标准。
因此,为I-plantEnterprise写的Servlet无须任何实质上的改动即可移植到Apache、MircrosoftIIS或者WebStar。
几乎所有的主流服务器都直接或通过插件支持Servlet。
3.4JavaBean技术
JavaBean是描述Java的软件组件模型,类似于Microsoft的COM组件概念。
在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速地生成新的应用程序[4]。
对于程序员来说,最好的情况就是JavaBean可以实现代码的重利复用,另外对于程序的易维护性等也有重大的意义。
(1)JavaBean类由一个没有参数的构造函数。
JavaBean类必须有一个没有参数的构造函数,这个构造函数在使用<
jsp:
useBean>
实例化JavaBean类时调用。
如果JavaBean类没有任何构造函数,系统会自动生成一个没有参数的构造函数。
(2)JavaBean类的属性都应该定义为私有的。
把属性定义为私有的,则这些属性只能通过JavaBean内的方法访问或者改变,这样可以较好地保护数据的完整性和封装性,也可以对数据加以约束。
(3)属性值通过setXXX()方法和getXXX()方法来操作。
用户可以设计的属性是读写、只读或者只写。
同时拥有getXXX()或者setXXX()方法可以使之具有读写属性;
只有getXXX()方法使之具有只读属性;
setXXX()方法使之具有只写属性。
3.5MVC设计思想
本JSP网站的开发技术使用JSP+JavaBean+Servlet的模式。
该技术组合显示了JSP的优势,较好的实现了MVC模式。
MVC思想将一个应用分成3个基本部分:
Model(模式)、View(视图)、Controller(控制器)。
MVC模式即“Model-View-Controller”,就是“模式-视图-控制器”,这3个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。
View处于Web层或者说是Client层,通常是JSP.实现页面的显示。
Controller也处于Web层,通常用Servlet来实现,用来控制业务逻辑的。
Model处于中间层,通常用服务端的JavaBean或者EJB实现,JavaBean用来封装业务逻辑,可实现代码的重用,对数据进行处理,如连接数据库代码、显示数据库代码。
用户可以将自己的数据保存。
[5]
4系统结构设计
4.1总体结构设计
根据图书管理需求分析,该系统需要实现图书管理、读者管理、图书管理三大功能。
主要包括系统设置、图书管理、读者管理、借阅管理四个模块。
其总体结构设计图如图4-1所示:
图4-1总体结构设计图
4.2图书管理员操作示意图
本系统的操作都是由管理员来实现的,根据图书管理需求分析,图书管理系统首先需要用户进行登录,设置权限进行登录。
其示意图如图4-2所示:
4.2图书管理员操作示意图
4.3数据库设计
为了实现图书管理系统永久性地存储数据,这里采用了Access数据库。
[6]在Accesss软件中,创建数据库及studentbook作为保存数据的位置,共包含5张表。
下面分别给出这些数据表的概要说明级主要数据表的结构。
4.3.1逻辑结构设计
图书信息(book)表:
图书编号,图书名称,图书作者,图书出版社,ISBN号,图书数量;
借阅信息(bookjie)表:
图书编号,图书名称,借阅数量,借书人名称
借书日期,借阅证号码;
借阅证信息(jie)表:
借阅证编号,学生学号,学生名称,学生院系;
图书管理员(librian)表:
管理员名称,管理员密码;
系统管理员(manager)表:
管理员名称,管理员密码。
4.3.2物理结构设计
(1)book表
book表主要用来保存图书的基本信息。
添加和删除图书等操作采用的数据主要依据该表信息。
表book的文字说明如表4-1所示:
表4-1图书信息表
字段名
数据类型
是否允许空
备注
bookid
自动编号
否
编号
bookname
文本
名称
bookauthor
作者
bookpublish
出版社
bookISBN
ISBN号
bookshu
数量
(2)bookc表
bookc表主要用来保存学生的借阅信息。
借书和还书等操作采用的数据主要以依据该表信息。
表bookc的文字段说明如表4-2所示:
表4-2借阅信息表
booktitle
bookstatus
借阅数量
studentname
借书人名称
bookdate
日期时间
借书日期
studentid
借阅证号
(3)jie表
jie表主要用来保存学生的借阅证信息。
添加借阅者和删除借阅者等操作采用的数据主要依据该表信息。
表jie的字段说明如表4-3所示:
表4-3借阅证信息表
借阅证编号
stuid
学生学号
stuname
学生名称
studept
学生院系
(4)Liabrian表
Liabrian表主要用来保存图书管理员的用户名和密码。
添加管理员、删除管理员和修改密码等操作采用的数据主要依据该表信息。
表Liabrian的字段说明如表4所示:
表4-4图书管理员表
name
管理员名称
password
管理员密码
(5)manager表
manager表主要用来保存系统管理员的用户名和密码。
添加系统管理员、删除系统管理员和修改密码等操作采用的数据主要依据该表信息。
表manager的字段说明如表4-5所示:
表4-5系统管理员表
4.3.3数据库访问
JDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组成。
用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。
[7]
本系统用JDBC来访问、操作数据库的。
JDBC可以实现三个功能:
与数据库建立连接、向数据库发送SQL语句,获取并处理结果集。
Connection对象代表与数据源进行的唯一会话。
如果是客户端服务器端数据库系统,则该对象可以等价于到服务器的实际网络连接。
在开发图书管理系统的过程中,会进行添加、删除和获取数据库记录集等操作,而这些操作经常需要连接数据库。
本软件采用了一个类将连接数据库和常用的数据库操作进行了封装。
实现封装数据库的功能关键代码如下:
…
classBookCon{
Connectioncon=null;
Statementstmt=null;
ResultSetrs=null;
publicvoidjspInit()
{
try
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
载入驱动程式类别
con=DriverManager.getConnection("
jdbc:
odbc:
stub"
建立数据库连接
建立Statement变量
stmt=con.createStatement();
}
publicvoidExcu(Stringsql){SQL语句更新
jspInit();
try{
stmt.executeUpdate(sql);
}catch(Exceptione){
System.out.print(e.toString());
}
}
获取数据库记录集对象
publicResultSetgetRs(Stringsql)throwsSQLException{
try{
rs=stmt.executeQuery(sql);
returnrs;
catch(Exceptione){
System.out.print(e);
returnnull;
获取可移动数据库记录集
publicResultSetexecuteQuery(Stringsql)throwsException