jsp图书借阅管理系统中的模块化设计摘 要 1Abstract 1第 一 章 绪论 31.1 系统开发背景 31.2 设计目标 41.3 系统设计原则 4l.3.1实用性原则 4l.3.2可靠性及可扩展性原则 4l.3.3 兼容性原则 4l.3.4 规范性原则 5第 二 章 系统开发语言简介 62.1 JSP语言的介绍 62.1.1 JSP脚本元素 72.1.2 JSP动作 72.2 SQL Server语言简介 82.3 Dreamweaver简介 92.4 数据接口的选择 9第 三 章 系统需求分析与数据库设计 103.1 系统功能模块分析 103.1.1 图书基本信息管理 103.1.2 图书流通管理 103.1.3 读者借阅证管理 113.1.4 统计查询 113.1.5 系统管理 113.2 模块框架图 113.3 系统数据分析和设计 12第 四 章 详细设计 164.1 面向对象的程序设计 164.2 系统功能详细设计 164.2.1 基本资料维护模块设计 164.2.2 “系统管理”模块设计 254.2.2.1 添加管理员 254.2.2.2 删除管理员 264.2.3“用户”模块设计 264.2.3.1 查询借阅情况 264.2.3.2 查询所要借的图书情况 26结 束 语 27参考文献 28图书借阅管理系统中的模块化设计摘 要: 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,企业要生存、发展,要高效地把企业活动有机地组织起来,就必须加强企业管理,即加强对企业内部的各种资源(人、财、物等)的有效管理,建立与自身特点相适应的管理信息系统。本文介绍了在JSP环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析传统的人工管理图书超市的不足,创建了一套行之有效的计算机管理图书超市的方案。文章在系统分析部分详细介绍了可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析等;在系统设计部分主要介绍了系统功能设计和数据库设计;在系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。关键词: 管理信息系统;图书管理;JSP应用
The Blocking Design in the System of the Book Borrow Manage Chai Jinbo, Class 3 Grade 2003,Department of Computer Science Abstract: With more and more widespread and profound application of information technology in management, the implement of management information system has become mature in technology step by step. Managing information system is a new subject. Enterprise needs existence and development, so enterprise activities should be organized efficiently and organically, which means tightening up the enterprise management and strengthening effective management of any resource (staff, finance, property, etc.) internal the enterprise, and also establishing a management information system fitting in with its own characteristics.This article introduces the detailed process of exploring a management information system under the environment of JSP, utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation. That is to establish a set of effective scheme for library management by computer, through analyzing disadvantages of traditional library management by human resources. This article emphasizes on three sections. The system analysis section of library management information includes feasible analysis, organizing organs analysis, management function analysis, technological process of business analysis, technological process of data analysis, data dictionary, disposal description and the like. The system design section mainly focuses on system function design and data base design. And the system realization section has provided several major program charts, together with the main windows and programs.Key words: MIS ; library managemen t ; JSP application193
jsp图书借阅管理系统中的模块化设计.1系统开发背景
一直以来人们使用传统的人工方式管理图书超市的日常工作,对于图书超市的借书和还书过程,想必大家都很熟悉。在计算机尚未在图书超市广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。以上所描述的手工过程的不足之处显而易见。首先,处理借书还书的业务流程的效率很低;其次,处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选书和看书上。为方便对图书超市书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书超市的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。本次毕业设计 “图书借阅管理信息系统”主要是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。图书借阅管理系统是一种基于集中统一规划的数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。目前,在大多数图书管理中,查找图书都是采用传统的查询方法,让读者在图书分类架上一本一本地去查找,这样不仅很难找到自己所需要的图书,且费时费力。而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个一个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库帐目,不仅工作量大,而且,在新书入库后要经历较长的时间方能借出。为提高图书查询效率,减少图书管理员的工作负担,有必要开发一个小型图书管理软件来对图书实施有效管理。该系统必须具备以下功能:1. 能对各类图书实行分类管理; 2. 提供必要的读者信息;3. 能进行各种高级查询(如未还书目的查询,已还书目的查询等);4. 具有图书检索功能;5. 能管理登录系统的图书管理员等。这样不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。
1.2设计目标
针对以上情况,决定构建一个基于客户机/服务器结构的图书管理系统,要求该系统能对登录后的用户实行权限管理。在系统启动后,读者能在客户端根据自已的需要查询图书,而图书管理员能在服务器端根据读者提供的身份信息及图书编号办理借书或还书手续,通过自动查询功能判断读者是否还能借书。如果读者没有逾期未还图书情况及所借图书没超过可借图书数量,则可继续办理借书手续,否则不予办理。另外,图书管理员能根据需要通过该系统的服务端自行修改图书信息,增加或删除图书书目等。该系统设有超级用户,当管理员以超级用户登录服务器时,图书管理员有着最大的权限,能通过管理界面设置图书借阅期限、查询逾期未还图书信息和读者信息,并能有效地管理图书分类、读者信息及图书管理员的登录帐目等。该系统要求能在WIN98及WIN2000环境下运行。1.3系统设计原则l.3.1实用性原则 适合于中小型图书超市图书管理,用户界面友好,操作方便,具有高效的数据处理能力。l.3.2可靠性及可扩展性原则 系统具有较高的可靠性,能保证系统的正常运作,系统还有待升级,保证了系统的可扩展性。l.3.3兼容性原则 对于所选软硬件系统及平台,能很好地适应开发和使用的需要。l.3.4 规范性原则软件设计过程严格按照“软件工程”的规定,系统编码、文档、操作系统平台以及开发方法采用相应的国际标准、国家标准和行业标准
jsp图书借阅管理系统中的模块化设计第二章 系统开发语言简介
本系统开发采用了所学的 JSP(JavaServer Pages) 、SQL Server 数据库服务技术。网页设计使用的是Dreamweave。在此,对系统所采用的语言和工具进行一点简单的介绍。2.1JSP语言的介绍
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)[1]。 Jsp文件不能由浏览器直接运行,而需由web服务器解释执行,Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,即HTML文件。 下面是一个简单的JSP 示例:
JSP实验 <% String Msg = "This JSP test."; Out.println("Hello World!"); %>
<%=Msg%>
说明:上例中嵌入在普通的html语句中的以<% %>括起来的语句即是用jsp Scriptlet编写的。语句String Msg = "This JSP test.";定义一个字符串变量Msg,其值为"This JSP test."。 语句out.println("Hello World!");的作用是在浏览器中输出一行字符:Hello World!。 语句 =Msg的作用是在浏览器中输出变量Msg的值,即"This JSP test." [2]。2.1.1 JSP脚本元素
Jsp脚本元素主要有两种类型:1. scriptlet jsp scriptlet能够向将用来生成页面的script方法中插入任意java代码。 语法如下:<%java_code%> 2. 表达式 表达式元素包含了jsp页面使用的脚本语言中有效的表达式。表达式用来直接向输出插入值。经过计算,值被转换为字符串,并插入到jsp文件中出现表达式的位置。语法如下:<% = expression%>
2.1.2 JSP动作
Jsp动作主要有以下几种:1.
javaBean是特殊类型的java类,它与普通java类相比主要区别是包含了两种特殊的方法:set…(设置属性的方法)、get…(取属性值的方法)动作用来查找或实例化一个jsp页面使用的JavaBeans组件。在程序中可把逻辑控制、数据库操作放在javabeans组件中,然后在jsp文件中调用它,这样可增加程序的清晰度及程序的可重用性。[3] 2. 该动作的含义是使用bean中相应的set()方法设置一个或多个属性的值,值的来源是通过value属性明确给出,或者利用request对象中相应的参数。 假设某个bean有一个string类型的可被JSP文件使用的属性myProperty,则它必须有一个public方法setMyProperty(string value),动作使用的就是该方法。3. 这个动作提取指定bean属性的值,转换成字符串,然后输出。该动作实际是调用了bean的get()方法。按上文提到的某个bean有一个string类型的可被JSP文件使用的属性myProperty,它必须有一个返回类型为string的public方法getMyProperty()。使用的就是这个方法。 4. 动作的目的是把其他文件的正文插入到这个程序中来,以增加程序的可重用性和可读性。 5. 动作把客户请求转到另外的页面,以下的代码将不被执行。
2.2 SQL Server语言简介
SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言[4]。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有[5]:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有有别于其他的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组[6]:DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如创建、修改或者删除数据库对象;DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。DML组可以细分为以下的几个语句:SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据;DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX。
2.3 Dreamweaver简介
Macromedia Dreamweaver是建立 Web 站点和应用程序的专业工具[7]。 它将可视布局工具、应用程序开发功能和代码编辑支持组合为一个功能强大的工具,使每个级别的开发人员和设计人员都可利用它快速地创建界面并且基于标准的站点和应用程序。 从对基于 CSS 的设计提供领先的支持到手动编码功能,Dreamweaver 在一个集成和高效的环境中为专业人员提供了所需的工具。 开发人员可以将其选择的服务器技术与 Dreamweaver 配合使用,建立将用户连接到数据库、Web 服务和旧式系统的强大 Internet 应用程序[8]。2.4 数据接口的选择
由于系统和所用的开发工具自身所带的特点,所以系统中所要用到的接口有Connection接口、Statement接口和PreparedStatement接口三个接口
图书借阅管理系统中的模块化设计|论文第三章 系统需求分析与数据库设计
3.1系统功能模块分析
本系统将主要实现以下功能: 图书基本信息管理 图书流通管理 读者借阅证管理 统计查询 系统管理3.1.1图书基本信息管理
1.新书入库图书采购人员按照每年的采购计划进行购书(不在本系统考虑范围),图书购入后由图书管理人员将图书按类别分类后录入数据库。2.图书出库某一部分图书会随着时间的增长及知识的更新而变得不再有收藏的价值,或者图书被损坏,这些图书就要在图书库中除去,即从图书库中删除此图书记录。3.新书编码图书入库后,需要贴上条形码,以便以后提供借阅,本系统不涉及到条形码阅读器,只是假定此过程已经生成条形码。编码只是将条形码帖于书上以唯一标识图书。4.图书信息修改图书信息由于工作人员的疏忽,而出现错误,提供其图书ID就可以修改其信息。3.1.2图书流通管理
1.图书借阅 主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、借阅编号、操作员。2.图书归还 主要功能是输入借阅编号、借阅证编号、图书ID、还书日期,在借阅登记表中找到相应的记录,将借书记录删除,将该记录的相应数据更新到历史记录中。3.图书暂停 主要功能是将图书的状态改为暂时停止外借状态。更新图书表。3.1.3读者借阅证管理
1.挂失借阅证 主要功能是将借阅证的状态改为挂失。更新读者表状态字段。由图书管理员操作。2.暂停借阅证 主要功能是将借阅证状态标识改为暂停。可以由图书管理员来实现也可以系统自动处理,如所借图书超期时。3.注销借阅证 输入读者ID,依据输入读者的ID 删除读者表中的读者记录。3.1.4统计查询
1.读者查询 主要功能是录入读者的姓名或读者ID来精确查询或模糊查询读者的相关信息。2.借阅查询 主要功能是录入读者ID或图书编号对当前已经借阅的图书及读者的信息查询。3.1.5系统管理
1.添加管理员 主要功能是向系统中添加管理员,只有超级用户才有此权限。2.修改密码 主要功能用于用户密码的更改。3.2 模块框架图图3-1 系统功能简图
通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。通过对各实体数据关系的整理,我们可以画出如下E—R图[9]: 图3-2 系统E-R简图
图书借阅管理系统中的模块化设计|论文.3系统数据分析和设计
通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。读者:借阅证编号、姓名、最大借书数、状态。图书:图书编号、图书名称、作者、出版社、价格、库存量。工作人员:员工编号、登陆密码。实体之间的联系涉及的数据项有:借阅信息表:借阅证编号,图书编号,借书日期。因此对系统的数据库的设计可以围绕这几个方面进行,以以上的分析为依据,故系统数据库中的各数据表结构如下面的图所示:其创建书库表的代码如下(以创建数据库(WLHZXP)和图书(Book)表为例)。 create database WLHZXP //创建数据库WLHZXP on ( name='WLHZXP_Data', filename='e:\wlhzxp\WLHZXP。mdf', size=10MB, maxsize=50MB, filegrowth=10%) log on ( name='WLHZXP_log', filename='e:\wlhzxp\WLHZXP_log。ldf', size=4MB, maxsize=10MB, filegrowth=2MB) go use WLHZXP //创建图书表create table Book ( BookID int not null, Title varchar(50) not null, Austhor varchar(50) not null, TSLB varchar(50) null, ISBN varchar(50) not null, CBS varchar(50) null,lwfree.cn其表情况见下图: 图3-3图书库表(Book) 图3-4 用户信息表(Reader)
图3-5 图书借阅记录表(Borrow) 图3-6 管理员表(Manager) 图3-7 规则表(GZ)
以上是系统数据库的各表。其中Book表是用来存放图书的,如管理员要对书库中的图书做一些调整可以通过修改Book表达到。Reader表是用来存放用户信息的表,管理员能通过对Reader 表的操作知道某用户的具体信息。Borrow 表用来存放用户借书的记录,用户每借一次书,系统就自己在Borrow 表中添加一条记录,从而保证了书的出处有据可依。
jsp图书借阅管理系统中的模块化设计第四章 详细设计
4.1 面向对象的程序设计 面向对象的程序设计是系统中采用的主要程序设计方法,通过面向对象把系统要实现的功能都写进一个 Java Beans(java 类文件包)内,系统通过调用文件包内的方法实现系统的操作。本系统开发语言采用JSP ,这种方法能很大程度地提高系统的运行能力,保证了系统快速响应用户的请求。本系统的主要精华在于对 Java Beans 内的方法的把握[10]。 4.2 系统功能详细设计系统共分为三大模块: 基本资料维护模块设计 、系统管理模块设计和用户模块设计。基本资料维护模块设计主要是系统对数据库内容的维护,对图书的借出和归还的操作,对新书的入库、旧书的出库、以及书的信息的修改,对书的落处进行跟踪,保证图书超市内图书的完整性。系统管理主要完成对管理员的操作,记录每一个管理员的基本信息,及时地更新管理员的信息以及删除老管理员的信息。系统用户模块主要实现的功能是系统提供用户查询自己的借阅信息及用户对自己所需要的图书的查询。
4.2.1基本资料维护模块设计基本资料维护模块设计主要包括借书处理,还书处理,新书入库,图书出库[11]。1.借书处理:主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、还书期限、操作员姓名。 用户借阅图书的时候,系统从JSP 页面接收到读者的借阅证号和图书的编号,系统根据从JSP 页面中得到的参数从数据库中提取出读者需要的目标图书,并且将读者的借书记录写到数据库中的读者借书信息表中。(代码省略)。同样在页面中用文本框接收输入的信息,调用Beans 中的借书操作方法(borrow()),如果借书成功,修改图书(Book)表中的图书库存量,图书库存量减一,同时读者借书数量加一,如果读者借书累计到规定的一定数量,则设置读者的状态为不可借,记录到读者借书表中。如果借书不成功,则提示用户借书不成功的消息。例如,读者的借书状态为不可借等。 图4-3 借书操作界面 (borrowBook.jsp)2.还书处理主要功能是输入借阅证编号、图书ID,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录表中。用户归还图书的时候,系统从JSP 页面接收到读者的借阅证号和图书的编号,系统根据从JSP 页面中得到的参数中查询读者借书信息表中的记录,并且将此记录删除。如果借书操作成功,修改读者的累计借书量,累计借书量减一。如果读者的借书状态为不可借,则还书后把读者的借书状态设为可借;如果读者所还的书超期,则提示用户所借的图书超期,按一定的规定给予惩罚,并写入读者的惩罚表中。 图4-4 还书操作界面(return.jsp)3.添加图书主要功能是输入图书的各项信息,将图书的各项信息写入到数据库中的图书表(Book)中, 该记录包括图书编号、图书名称、出版社、作者、图书的简单介绍等等。为了保证图书信息量的完整性,所以每个图书超市必需时时引入新书,系统的新书入库这一环节必不可少, 系统通过管理员对JSP 页面输入的图书信息,自动转化为数据库所识别的数据,并写进数据库内的Book表中储存起来。系统在添加图书的模块中将用到BooksMn。class 文件中的 Insert() 方法。 图4-1 添加图书界面(addBooks.jsp)如上图所示,系统从JSP中接收管理员输入的图书信息,管理员在 JSP 页面中的文本框中输入图书信息,JSP页面中插入一个文本框(text)用来接收。例如:图书编号的信息输入框在表示为,其中type为插入对象的属性,表示插入的是文本框,name 是文本框的标识,就像文本框名称。当然文本框的取名也是有规定的,因为在JSP页面中使用到的 Beans 中获取页面提交参数的对象就是文本框,Beans 中要获得的参数的文本框的名字必须和 JSP 页面中添加的文本框的名字一致,也就是说页面中使用文本框的名字和 Beans 中获得对象参数的文本框的名字要一致。所以说 Beans 中获得图书编号的文本框的name 属性必须取名为 BookID,其中又由于java 开发语言是区分大小写的,因此必须保证取名一样。同样要获取图书的其他信息,也同样在页面中添
jsp图书借阅管理系统中的模块化设计加一个文本框用来接收输入的信息,同理name属性的取值必须和Beans中保持一致。添加图书信息的页面将用表单(Form)来接收图书信息的接收和提交,表单(Form)中将使用以下内容接收图书参数和提交数据。 用来接收图书编号; 用来接收图书名称的信息; 用来接收图书作者的信息; 用一个下拉菜单来表示图书的类别; 用来接接收图书出版社的信息; 用来接收图书载体的信息; 用来接收图书信息的简单的描述信息; 用来接收图书出版时间的信息; 用来接收图书的单价信息; 用来接收图书赔偿金额的信息; 用来接收图书有多少库存的信息; 提交按钮,用来提交页面中表单接收到的数据;重置按钮,当输入图书信息有误的时候重置按钮用来重新设置图书的信息。下面是添加图书页面中使用到的Beans的部分源代码,分别是 Beans 获得页面请求的处理参数的方法和插入数据到数据库的insert()方法。为页面申请一个请求(HttpServletRequest res),设置数据库的布尔标志(boolean)sqlFlag。用Try方法获得页面提交的参数,从中判断输入的信息是否正确,包括数据类型,数据库内要求的数据不能为空等。如果提交的参数有误则设置数据库标志为假(false),这样下面操作时判断数据库标志,如数据库标志为真时则继续操作,插入数据到数据库,从而达到添加图书的操作;如数据库标志为假时,系统则弹出提示信息,提示添加图书操作有错误。Import 命令用来加载编写次 Beans 需要用到的一些相关的 java 类文件。package myclass;import java.sql.Connection;import java.sql。ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Vector;import javax.servlet.http.HttpServletRequest;public class BooksMn extends DataBase { public Books abooks = new Books ( ); // 新的图书类 public javax.servlet.http.HttpServletRequest request; // 建立页面请求 public boolean sqlFlag = true; // 对接收到的数据是否正确 public Vector bookList; // 显示图书列表向量数组 public int page = 1; // 显示的页码 public int pageSize = 10; // 每页显示的图书数 public int pageCount = 0; // 页面总数 public long recordCount = 0; // 查询的记录总数 public BooksMn ( ) throws Exception {super ( ); } public Vector getBookList ( ) {return bookList; } public boolean getSqlFlag ( ) {return sqlFlag; } // 将页面表单传来的资料分解 public boolean getRequest(HttpServletRequest res) { boolean flag = false; try { request = res;} int BookID; try { BookID = new Integer(request.getParameter("BookID")).intValue(); } catch (Exception e) { BookID = 0; sqlFlag = false; } abooks.setBookID(BookID); String Title = request.getParameter("Title"); if (Title == null || Title.equals("")) { Title = "";} abooks.setTitle(DealString.toGBK(Title)); String Austhor = request.getParameter("Austhor"); if (Austhor == null || Austhor.equals("")) { Austhor = ""; } abooks.setAusthor(DealString.toGBK(Austhor)); String TSLB = request.getParameter("TSLB"); if (TSLB == null || TSLB.equals("")) { TSLB = ""; } abooks.setTSLB(DealString.toGBK(TSLB)); String ISBN = request.getParameter("ISBN"); if (ISBN == null || ISBN.equals("")) { ISBN = "";} abooks.setISBN(DealString.toGBK(ISBN)); String CBS = request.getParameter("CBS"); if (CBS == null || CBS.equals("")) { CBS = "";} abooks.setCBS(DealString.toGBK(CBS)); String TSZT = request.getParameter("TSZT"); if (TSZT == null || TSZT.equals("")) { TSZT = "";} abooks.setTSZT(DealString.toGBK(TSZT)); String TSXX = request.getParameter("TSXX"); if (TSXX == null || TSXX.equals("")) { TSXX = ""; } abooks.setTSXX(DealString.toGBK(TSXX)); String CBSJ = request.getParameter("CBSJ"); if (CBSJ == null || CBSJ.equals("")) { CBSJ = ""; } abooks.setCBSJ(DealString.toGBK(CBSJ)); int DJ; try { DJ = new Integer(request.getParameter("DJ")).intValue(); } catch (Exception e) { DJ = 0;} abooks.setDJ(DJ); int PCJE; try {PCJE = new Integer(request.getParameter("下空一行,打印英文摘要,格式、字体与中文相同。PCJE")).intValue(); } catch (Exception e) { PCJE = 0;} abooks.setPCJE(PCJE); int TSKCL; lwfree.cn); if (sqlFlag) {flag = true;} return flag; catch (Exception e) { return flag; } }添加图书页面中Beans 中的插入方法(insert ( )),将数据插入到数据库(Wlhzxp)中的图书信息(Book) 表中,其中sqlStr 为数据库字符串,abooks 为图书类的一个对象,通过abooks 对象可以引用 Books 类中的方法,如:getXX(),setXX() 方法来获得图书的信息。DealString.toSql 为将输入信息转化为数据库所能认识和接收的数据的一个方法。 try { stmt.execute ( sqlStr ); return true; }来执行数据库插入数据的操作。如果操作成功返回数据库操作成功。catch ( SQLException sqle ) { return false; } 用来捕获数据库异常,如果数据库发生异常,返回数据库操作异常。public boolean insert ( ) throws Exception { sqlStr = "insert into Book values ('"; sqlStr = sqlStr + abooks.getBookID ( ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getTitle ( ) ) + "','";
图书借阅管理系统中的模块化设计sqlStr = sqlStr + DealString.toSql ( abooks.getAusthor ( ) ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getTSLB ( ) ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getISBN ( ) ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getCBS ( ) ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getTSZT ( ) ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getTSXX ( ) ) + "','"; sqlStr = sqlStr + DealString.toSql ( abooks.getCBSJ ( ) ) + "','"; sqlStr = sqlStr + abooks.getDJ ( ) + "','"; sqlStr = sqlStr + abooks.getPCJE ( ) + "','"; sqlStr = sqlStr + abooks.getTSKCL ( ) + "')"; try { stmt.execute ( sqlStr ); return true; } catch ( SQLException sqle ) { return false; } }
4.删除图书主要功能是删除数据库中不用的图书,根据输入图书的编号来确定要删除的图书。当图书超市内有旧书被新书替代或者有旧书将不再被使用,这时系统就要对数据库中的旧书进行清理,以免数据库中数据太多,造成系统的成本提高,所以系统中就有删除图书这一模块,当系统从JSP 页面中接收到要删除的书的参数时,系统调用BooksMn。class 文件中的 Delete() 方法删除所要删除的图书。public boolean delete ( ) throws Exception { sqlStr = "delete from Book where BookID = " + abooks.getBookID ( ); try { stmt.execute ( sqlStr ); return true; } catch ( SQLException e ) { System.out.println ( e ); return false; } } 图4-2 删除图书界面(delBooks.jsp)删除图书所用的Beans 和添加图书使用的是同一个,删除图书调用Beans中的delete()方法,通过页面提交的图书编号删除图书。abooks.getBookID ( )用来获得页面提交的图书编号。下面是对删除操作(delete()方法)的注解。public boolean delete ( ) throws Exception { sqlStr = "delete from Book where BookID = " + abooks.getBookID ( );try { stmt.execute ( sqlStr ); return true; }用来执行数据库操作,成功则返回数据库操作成功标志。 catch ( SQLException e ) { System.out.println ( e ); return false; }用来捕获数据库操作异常的信息,如数据库发生异常,则返回数据库操作不成功。
4.2.2“系统管理”模块设计 系统管理主要实现的是对系统管理员的管理,包括添加新的管理员帐号和删除老管理员帐号。
4.2.2.1 添加管理员
系统从JSP 页面中提交的参数中获得新的管理员帐号和密码,并写入管理员表(Manager)中。系统用来接收输入的管理员ID和用来接收输入的管理员密码,并通过调用ManagerMn。class 类文件中的insert() 方法插入到数据库中的管理员(Manager)表中。
图4-5 添加管理员界面(addAdmin.jsp)
4.2.2.2 删除管理员 系统从JSP 页面提交的参数中获得要删除的旧管理员帐号和密码,并从管理员表(Manager)中删除。删除管理员操作同样使用的是ManagerMn。class文件,只是调用的是文件中的delete() 方法。用一个文本框来接收输入要删除的管理员的ID。单击提交按钮来完成删除管理员操作。 图4-6 删除管理员界面(delAdmin.jsp)4.2.3“用户”模块设计用户模块设计主要包括用户查询借阅情况和查询自己要借阅的图书的情况。
4.2.3.1 查询借阅情况系统从JSP 页面中提交的参数中获取要查询的读者ID ,系统再从图书借阅信息表中查询,条件是读者借阅表中的读者ID 等于JSP页面中提交上来的参数,如果查不到该读者的记录,则提示该用户还没有借阅图书或JSP页面提交的参数有错。(图和代码略)4.2.3.2 查询所要借的图书情况系统从JSP 页面中提交的参数中获取要查询的图书ID ,系统再从图书表中查询,条件是图书表中的BookID 等于JSP页面中提交上来的参数,如果查不到该读者的记录,则提示该用户数据库中没有该图书或JSP页面提交的参数有错。(图和代码略)
jsp图书借阅管理系统中的模块化设计短短的几个星期过去了,毕业设计的任务终于完成了。在设计过程中,主要使用了JSP程序设计语言,SQL Server 数据库服务和Dreamweaver来开发这个图书借阅管理系统工程。我觉得JSP在实际操作中很实用,而且JSP程序设计语言具有强大的结构化程序设计和面向对象程序设计的功能。SQL Server 数据库本身的优点使系统对数据操作更加的完善,能完成多种复杂条件下的操作。本次设计完成了对图书借阅管理系统的实现 ,系统实现了对图书的管理,读者的管理,和图书的去向跟踪,对图书的查询。从而保证了用户能及时方便地使用图书。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好。 通过开发这个系统,我掌握、了解了其开发过程,并对JSP +SQL Server 动态开发网页产生了浓厚的兴趣。但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。然而个人所学还是有不全面的地方,本系统还不能实现高级查询这一个功能,系统的实现还是有些困难,由于该系统要求要基于网络的图书借阅系统,如果网络上的一个用户要借阅此系统中的某一本书,系统就比较难以实现。这就要求借阅双方有一定基础的信任度,同时要保证书本及时借到用户手中,由于现实中网络化的生活服务并不完善和书本在借出中的跟踪很困难。所以本系统要基于网络还是停留在理论上,当然在科技日益进步的今天,随着科技的进步,基于网络的图书借阅管理系统在将来的日子里还是可以实现的。
在本设计完成之际,我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、同学和亲人。首先,我要感谢我的导师,几个月来她在学习上一直对我悉心指导、严格要求、热情鼓励,为我创造了很多锻炼提高的机会。老师洞察全局、高屋建瓴,为我的论文的顺利完成指明了很好的方向。老师渊博的知识、宽广无私的胸怀、夜以继日的工作态度、对事业的执著追求、诲人不倦的教师风范和对问题的敏锐观察力,都将使我毕生受益。在此我谨向敬爱的老师致以最诚挚的谢意!在JSP编程过程中,代码设计和功能实现也曾遇到过困难,是同学们给我大力的支持和帮助,使我的整个系统功能有了改进,我也十分感谢他们,并感谢学校给我这次机会和老师对我的培养。参考文献
[1]张琴,张千帆 . JSP动态网页制作[M] . 北京:人民邮电出版社,2005.4[2]石志国 . JSP应用教程[M] . 北京: 清华大学出版社, 2005.7[3]耿祥义. JSP实用教程[M] . 北京: 清华大学出版社,2003.5[4]刘敏涵 . 数据库原理及应用[M] . 科学出版社, 2006.8[5]何文华,李萍. SQL SERVER 2000应用开发教程[M] .电子工业出版社, 2005.2[6]吴斌 ,赵有珍 . SQL SERVER 7.0 应用与提高[M] . 北京: 科学出版社, 2003.4[7]闪吧 . 网页设计专家门诊[M] . 北京: 清华大学出版社, 2005.7[8]李冰 . 超炫网页设计[M] . 北京: 北京希望电子出版社,2003.5[9]张海藩 . 软件工程导论[M] . 北京: 清华大学出版社, 2005.11[10]求是科技 . Java信息管理系统开发[M]. 北京:人民邮电出版社, 2005.4[11]普雷斯曼(美) . 软件工程[M] . 北京: 经济科学出版社, 2006.6[12]XSLT Solution for Java EE APPlications,Boris Minkin ,Java Developer’s Journal:1087-6944[J].Vol.11;No.11,2006