配色: 字号:
jsp图书馆管理系统ssh论文
2024-04-18 | 阅:  转:  |  分享 
  


本 科 生 毕 业 设 计













设计题目:图书馆管理系统的

的设计与开发

学生姓名:

学生学号:

指导教师:

二级院系:

专业班级:

完成时间:









目 录

Abstract IV

第1章 概述 1

1.1 课题背景 1

1.2 课题意义 1

1.3 文献综述 2

1.3.1 技术综述 2

1.4 总体设计原则 2

第2章 系统分析 4

2.1 系统的需求分析 4

2.2 业务流程分析 5

2.2.1 系统管理员业务流程分析 5

2.3 数据流程分析 7

2.3.1 图书类别管理模块 7

2.3.2 图书管理模块 7

2.3.3 读者管理模块 8

2.3.4 图书借阅模块 8

2.3.5 修改密码模块 9

2.4 数据字典 9

2.4.1 数据项的描述 9

2.4.2 数据流的描述 11

第3章 系统设计 12

3.1 系统体系结构设计 12

3.2 系统子模块功能介绍 12

3.3 数据库设计 13

3.3.1 数据库概念设计——E-R模型 13

3.3.2 数据库逻辑设计——关系模型 14

3.3.3 数据库选型 14

3.3.4 数据库表结构设计 14

3.3.5 数据库表间关系设计 16

3.4 系统开发工具与开发模式的选择 17

3.4.1 系统开发工具 17

3.4.2 系统设计模式 19

第4章 系统实现 21

4.1登陆模块 21

4.2 图书类别管理模块 24

4.3 图书管理模块 27

4.4 读者管理模块 29

4.5 图书借阅管理模块 32

第5章 系统测试 35

5.1 测试目的 35

5.2 测试方法 35

5.3 测试结果 35

第6章 总结 36

参 考 文 献 37

致 谢 38



摘 要

本文对图书馆管理系统的设计与开发过程进行了分析与叙述。依照系统开发的实际操作步骤,文章从系统概述、系统分析、系统设计和系统实现这四大章节对系统开发过程进行分别阐述。系统概述中主要进行了课题背景、课题意义和现状分析;系统分析中主要包括了系统设计前的需求分析、业务流程分析、数据流程分析和数据字典分析;而系统设计则是对系统体系结构、各功能模块、数据库结构设计等具体的系统实现过程进行剖析展示,在系统设计章节中有详细的文字解释并配有表图说明。文章还列举了关键的功能模块实现代码。

本文力求可以为图书馆管理系统的开发设计找到一种切实可行的解决方案,在分析了目前国内外图书馆管理系统的现状的基础上,并经过反复摸索和学习研究后,借助编程语言JSP和SQL 数据库最终实现了图书馆管理的开发,并在一系列测试后,达成了人性化、所需功能完善、操作清晰的设计目标。

关键词:JSP;SQL Server 2005;图书 Abstract

In this paper, book management system design and development process is analyzed and described. In accordance with the actual steps of system development, the article from the system overview, system analysis, system design and system realization of these four sections of the system development process are described. System were the main issues outlined in the background, meaning and status of the subject analysis; system analysis, system design includes a pre-needs analysis, business process analysis, data flow analysis and data dictionary analysis; and system design is the system architecture, various functional modules, database structure design to achieve specific process to analyze the system display, the system design section to explain in more detail and with a table diagram shows. The article also lists the key function module code

This paper seeks to book management system for development and design to find a practical solution in the analysis of -Bo at home and abroad on the basis of the status of the system, and after repeated exploration and study after study, using JSP and soft SQL programming language Server database and ultimately the book management system development, and in a series of tests, reached a user-friendly, functional requirements, operations designed to clear



Key Words:JSP;SQL; Book



第1章 概述

1.1 课题背景

随着社会的发展,人对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就不可少了,本文介绍了在Windows环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的入库登记到查询浏览,从借书证发放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理系统的开发的基本环境数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了基于这问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况soft Access/ SQL Server技术,或者DEPHI + SQL Server,几乎有很少使用JSP体系结构技术。

1.3.1 技术综述

尽管有着众多的网络开发体系,但如何决定一个系统使用何种方法开发仍然是基于系统的基本需求,本文不详细描述各种开发体系的性能优劣,这里选取了二家不同规模的图书馆管理系统,将各系统选用的开发体系列表比较如下:

表1.1 各系统选用的开发体系列表

系统名称 开发语言 数据库 Web服务器 操作系统 青岛大学图书管管理系统 VB Microsoft Access IIS 6.0 Windows Server 2000 海尔图书馆管理系统 ASP.NET Microsoft SQL Server 2005 IIS 6.0 Windows Server 2000 1.4 总体设计原则

本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。其主要设计原则有:

简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。

针对性:本系统设计是针对的需求定向开发设计,所以具有专业突出和很强的针对性。

实用性:要求本系统能够满足的需求,因此具有良好的实用性。

一致性:页面整体设计风格以及命名规则的一致性:整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。功能一致性:完成同样的功能应该尽量使用同样的元素。 元素风格一致性:界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。变量命名规则的一致性:变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。

先进性:本系统采用JSP技术、等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性 第2章 系统分析

2.1 系统的需求分析

本系统致力于建立灵活、方便的图书馆管理系统,主要有五大功能模块:类别管理模块、图书管理模块、读者管理、借阅管理和归还管理模块。



图2.1 系统需求分析图

1. 图书类别信息管理:作为一个社区的图书馆,涉及到的图书是很多的,这就有必要对图书进行分门别类,这样有利于对图书的查询和管理,管理员登陆系统后可以对图书类别进行添加,更新和删除操作。

2. 图书信息管理:当管理员对图书类别信息添加完成后,就可以开始进行图书信息的录入了。

3. 读者信息管理:管理员可以添加新的读者信息,修改已经存在的读者信息,删除读者信息。

4. 图书借阅管理:管理员登陆系统后。可以管理读者的借阅信息。首先输入读者的借书证号,然后输入要借阅的图书和借阅时间,完成借阅的管理。

5. 图书归还管理:当读者看完了书或需要归还时,管理员通过系统提供的接口完成图书归还操作。







2.2 业务流程分析

2.2.1 系统管理员业务流程分析

系统管理员进入用户登录界面后,在登录功能区输入系统管理员的用户账号与密码,登录成功后跳转到系统主窗体。系统可以查看图书信息,并对其进行查找或删除等操作;查看读者信息,对不符合系统规定的进行删除操作;添加图书借阅信息,并对其进行编辑或删除等操作。结束各项操作后退出,回到系统主窗体。





图2.2 系统管理员业务流程图





2.3 数据流程分析

2.3.1 图书类别管理模块





图2.3 图书类别管理模块数据流程图

2.3.2 图书管理模块





图2.4 图书管理模块数据流程图





2.3.3 读者管理模块





图2.5 读者信息管理模块数据流程图



2.3.4 图书借阅模块





图2.6 图书借阅模块数据流程图







2.3.5 修改密码模块





图2.7 修改密码模块数据流程图



2.4 数据字典

2.4.1 数据项的描述

表2.8 图书类别数据项描述

数据项 类型 长度 值范围 ID 数字 4 0000000000至9999999999之间 类别名称 文本 50 最多25个字符 类别介绍 文本 500 0-500个汉字

表2.9图书信息数据项描述

数据项 类型 长度 值范围 ID 数字 4 0000000000至9999999999之间 名称 文本 4 2~100个汉字 作者 文本 50 2~100个汉字 出版社 文本 4 2~100个汉字 出版日期 日期 50 年-月-日,形如“2011-5-19” ISBN 文本 10 2~100个汉字 单价 文本 2~100个汉字 类别ID 数字 0000000000至9999999999之间

表2.10 读者信息数据项描述

数据项 类型 长度 值范围 ID 数字 4 0000000000至9999999999之间 姓名 数字 4 2~50个汉字 性别 文本 20 2~50个汉字 年龄 数字 10 1-100 住址 文本 4 2~50个汉字 联系方式 文本 50 2~50个汉字 借书证号 文本 50 2~50个汉字

表2.11 借阅信息数据项描述

数据项 类型 长度 值范围 ID 数字 4 0000000000至9999999999之间 用户ID 数字 4 0000000000至9999999999之间 图书ID 文本 20 0000000000至9999999999之间 借阅数量 数字 10 1-100 借阅时间 日期 4 年-月-日,形如“2011-5-19” 归还时间 日期 4 年-月-日,形如“2011-5-19”

表2.12 管理员信息数据项描述

数据项 类型 长度 值范围 ID 数字 10 0000000000至9999999999之间 登陆账号 文本 10 2~50个字符 登陆密码 文本 500 2~500个字符

2.4.2 数据流的描述

(1)数据流名:图书类别信息

简述:用户登录成功后可以添加、编辑和删除图书类别信息

组成:图书类别参数=类别名称+备注

数据量:约100次/日

(2)数据流名:图书信息

简述:系统管理员登录成功后可以浏览、删除、增加图书收费信息

组成:图书信息=图书名称+作者+出版社+出版日期+图书ISBN+单价+库存数量+页码+类别编号

数据量:约5000次/日

(3)数据流名:读者信息

简述:系统管理员登录成功后可以添加、编辑和删除读者信息

组成:读者信息=姓名+性别+年龄+住址+联系方式+借书证号

数据量:约100次/日

(4)数据流名:借阅信息

简述:系统管理员登录成功后可以添加、编辑和删除图书借阅信息

组成:借阅信息=读者编号+图书编号+借阅天数+借阅时间+归还时间+备注

数据量:约100次/日



第3章 系统设计

3.1 系统体系结构设计

本系统的系统结构是按照了自上向下的设计理念完成的。第一层是用户登录界面。第二层是系统主页,主要包括图书类别管理,图书信息管理、读者管理、借阅信息管理、修改密码等,用户登录成功后可以转至各个管理功能。第四层即各个管理功能的所有功能。





图3.1 系统体系结构设计



3.2 系统子模块功能介绍

(1)图书类别管理模块:主要功能是系统管理员登入后,添加、编辑和删除图书类别的功能。

(2)图书管理模块:主要功能是系统管理员登入后,添加、编辑和删除图书信息的功能。

(3)读者管理模块:主要功能是管理员登入后,维护读者的信息。包括录入新的读者,删除不符合规定的读者,编辑现有的读者信息。

(4)借阅管理模块:主要功能是管理员登入后,维护图书借阅的信息。包括增加新的,删除不符合规定的借阅,编辑现有的借阅信息。



(5)修改密码模块:主要功能是管理员为了保证安全性。重设密码的功能

3.3 数据库设计

3.3.1 数据库概念设计——E-R模型

概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体-联系模型,即E-R模型,它是用E-R图来描述现实世界的概念模型。下列E-R图清楚简便的描述出了本系统实体与其属性之间的关系。



图3.2 数据库概念模型E-R图



3.3.2 数据库逻辑设计——关系模型

下面将图3.2数据库E-R图转换为关系模型。

图书类别信息(ID,类别名称,备注信息)



图书信息(ID,名称,出版社,出版日期,ISBN,页码,库存,类别ID)



读者信息(ID,姓名,性别,年龄,住址,联系方式,借书证号)



借阅信息(ID,图书ID,读者ID,借阅数量,借阅时间,归还时间)



管理员信息(用户名,密码)



3.3.3 数据库选型

本系统使用SQLSERVER关系型数据库。

SQLSERVER是由微软公司出品,基于关系型数据库的大型数据库系统,该版本数据库具有独立于硬件平台、对称的多处理器结构、抢占式多任务管理、完善的安全系统和容错功能,更具有使用方便、可收缩性好与相关软件集成程度高等优点。

3.3.4 数据库表结构设计

本系统后台数据库中总共设计了5张数据表,分别为黑名称图书类别信息表(t_catelog)、图书信息表(t_book)、读者信息表(t_user)、借阅表(t_jieyue)和管理员信息表(t_admin)。具体结构设计如下:

(1)图书类别信息表(t_catelog)

图书类别信息表主要用于存放图书类别的信息,主要字段包括:ID,类别名称,备注信息等。



表3.3 图书类别信息表(t_catelog)

字段名 数据类型 字段描述 长度 主键 ID int ID 4 √ Mingcheng varchar 类别名称 50 Beizhu varchar 备注信息 500

(2)图书信息表(t_book)

图书信息表主要用于存储图书信息,主要字段有ID、图书名称、出版社、出版日期、ISBN号、页码、库存数量、类别ID等

表3.4 图书信息表(t_book)

字段名 数据类型 字段描述 长度 主键 ID Int 编号 4 √ Name Varchar 图书名称 50 Chubanshe Varchar 出版社 50 Chubanriqi Varchar 出版日期 4 Isbn Varchar 图书ISBN 50 Price Varchar 单价 50 Kucun int 库存数量 50 Catalog_id Varchar 类别ID 50

(3)读者信息表(t_user)

读者信息表主要用于存储读者信息,主要字段有姓名、性别、年龄、住址、联系方式、借书证号等

表3.5读者信息表(t_user)

字段名 数据类型 字段描述 长度 主键 ID Int 编号 4 √ Name Varchar 姓名 50 Sex Varchar 性别 50 Age Int 年龄 4 Address Varchar 住址 50 Tel Varchar 联系方式 50 Jiehao Varchar 借书证号 50

(4)借阅信息表(t_jieyue)

读者信息表主要用于存读者借阅图书的信息,主要字段有ID、图书ID、读者ID、借阅时间、归还时间、借阅数量等

表3.6借阅信息表(t_jieyue)

字段名 数据类型 字段描述 长度 主键 ID Int 编号 4 √ Book_id Int 图书编号 50 User_id Int 读者编号 50 Jieyueshijian Varchar 借阅时间 4 Jieyueshuliang Varchar 借阅数量 50 Guihuanshijian Varchar 归还时间 50 Beizhu Varchar 备注 50

(5)管理员信息表(admin)

管理员信息表主要用于系统管理员的信息,主要字段包括:编号、登陆账号、登陆密码。

表3.7 管理员信息表(admin)

字段名 数据类型 字段描述 长度 主键 ID Int 编号 10 √ Name varchar 登陆账号 50 Pwd varchar 登陆密码 50

3.3.5 数据库表间关系设计





图3.8 数据库表间关系图





3.4 系统开发工具与开发模式的选择

3.4.1 系统开发工具

本系统主要使用JSP、技术对系统进行设计和开发。JSPJava Server Page,Java应用页面程序。作为开发动态页面的一种技术,JSP是当前大中型企业应用软件首选的开发路线之一。而且JSP是J2EE的重要组成部分,开发人员可以在JSP中获得J2EE的众多优点。学习JSP也是J2EE入门的必经之路。

JSP既依赖于也得益于J2EE技术。“一次编写,随处运行”的可移植性使用户可以专注于JSP的开发,而无须考虑系统层面的问题;Java的开放特性使市面上涌现出了众多的Web框架可供采纳;面向对象的设计,为更加轻松地构筑安全稳定的Web在线系统提供了基础保障。

JSP秉承了J2EE高贵的血统,却又带着平易近人的个性。JSP本质上是一个Java程序,具备Java语言一切无与伦比的优势。相比依赖于VBScript代码的ASP,以及依赖于Perl语言的PHP等其他Web编程语言,JSP有着严格的Java语法支持,可以和Java Bean无缝整合。

ASP采用了解析执行的机制,而JSP则是先编译后执行。因此,在第一次访问时JSP比ASP要慢,但是JSP的执行则比每次都解析执行的ASP快若干个数量级。微软随后推出了ASP.NET,号称提供了丰富的面向对象类库,引入中间语言的概念来支持多种语言,完整地集成了XML及Web Service的支持,利用代码托管机制避免危害服务器,并期盼以此代替ASP。事实上ASP.NET的框架设计与J2EE框架十分类似,虽然弥补了ASP之前的缺陷,但是,其对于Windows平台的依赖性以及.NET本身的封闭性却依然存在。尽管现在有Mono计划将所有的开发转移到Linux,但是由于各种原因,Mono有着众多的制肘,并不被业界看好。当然,对于Windows环境下的中小型应用程序,ASP.NET确实是不错的选择。

JSP是线程高度并行的,可以充分利用硬件资源。另外,Java语言与平台无关,开发者可以将JSP部署在几乎任何操作系统上,UNIX系统可以为JSP提供稳定可靠的安全运行环境;利用集群技术还可以把多台主机联合起来服务于JSP应用程序。因此,JSP对于高可靠性、高性能要求的企业级应用系统有较强的吸引力。

从开发者的角度考虑,JSP是开发Web应用程序的首选。JSP支持JavaBean组件,也就获得了众多Java厂商的有力支持,开发者可以利用JavaBean来完成所有Java能实现的功能,如数据库连接池、图形绘制、文件IO操作、XML解析、WebService调用与发布等。Java的开放性也使系统框架如雨后春笋般涌现,Struts,Webwork,Tapstry,Velocity,Hibernate等开源框架为Web应用开发者简化了开发流程,提高了代码质量,从而降低了学习门槛和开发成本。JSP遵循J2EE规范所采用的分层结构也使得代码容易组织维护,各个独立的层次分别针对特定的编程领域,在某个领域发生变化的时候,只需要在对应层次进行针对性的修改,而不会影响到其他层次的代码。

而相对于Servlet这种Java类,JSP又有着特定的优势。从前面的例子可以看出,要完成一个简单JSP页面具有的功能,需要编写大量的Servlet代码,而且,从代码上根本看不出来生成的HTML文档结构。另外,JSP中双引号等特殊字符,在Servlet中都需要进行转义处理,又进一步降低了程序的可读性。Servlet不能有效地利用原型页面。事实上,在JSP中,还可以使用标签等特性,进一步将JSP中的 Java代码导致的不利因素削弱。

总之,使用JSP可以降低开发门槛,提高程序可读性,开发出高性能的跨平台企业级软件。所以在线汽车销售网站采用了JSP技术。

3.4.2 系统设计模式

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。B/S结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专网(VPN)。前者的特点是安全、快捷、准确。后者则具有节省投资、跨地域广的优点。须视企业规模和地理分布确定。企业内部通过防火墙接入Internet,再整个网络采TCP/IP协议。



C/S 与 B/S 区别:Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的。1.硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行 2.对安全要求不同 C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群. 3.对程序架构不同 C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟. 4.软件重用不同 C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子 5.系统维护不同 系统维护是软件生存周期中,开销大, -------重要C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级. 6.处理问题不同 C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小. 7.用户接口不同 C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本. 8.信息流不同C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更交易中心。

第4章 系统实现

4.1登陆模块

(1)登陆界面

要想使用本系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。









图4.1登陆模块界面

(2)登陆模块关键代码

public String login(String userName,String userPw,int userType)

{

try

{

Thread.sleep(700);

} catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}



String result="no";



if(userType==0)//系统管理员登陆

{

String sql="select from t_admin where userName=? and userPw=?";

Object[] params={userName,userPw};

DB mydb=new DB();

mydb.doPstm(sql, params);

try

{

ResultSet rs=mydb.getRs();

boolean mark=(rs==null||!rs.next()?false:true);

if(mark==false)

{

result="no";

}

else

{

result="yes";

TAdmin admin=new TAdmin();

admin.setUserId(rs.getInt("userId"));

admin.setUserName(rs.getString("userName"));

admin.setUserPw(rs.getString("userPw"));

WebContext ctx = WebContextFactory.get();

HttpSession session=ctx.getSession();

session.setAttribute("userType", 0);

session.setAttribute("admin", admin);

}

rs.close();

}

catch (SQLException e)

{

System.out.println("登录失败!");

e.printStackTrace();

}

finally

{

mydb.closed();

}



}





if(userType==1)

{

String sql="select from t_yuangong where del=''no'' and loginName=? and loginPw=?";

Object[] params={userName,userPw};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

boolean mark=(rs==null||!rs.next()?false:true);

if(mark==false)

{

result="no";

}

if(mark==true)

{

TYuangong yuangong=new TYuangong();



yuangong.setId(rs.getInt("id"));

yuangong.setName(rs.getString("name"));

yuangong.setSex(rs.getString("sex"));

yuangong.setAge(rs.getString("age"));



yuangong.setTel(rs.getString("tel"));

yuangong.setAddress(rs.getString("address"));

yuangong.setLoginName(rs.getString("loginName"));

yuangong.setLoginPw(rs.getString("loginPw"));



result="yes";



WebContext ctx = WebContextFactory.get();

HttpSession session=ctx.getSession();

session.setAttribute("userType", 1);

session.setAttribute("yuangong", yuangong);

}

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();

}

if(userType==2)

{



}

return result;

}



4.2 图书类别管理模块

(1)图书类别管理模块界面

管理员登陆系统后,点击左面的菜单“图书类别管理”,页面调转到图书类别管理界面,录入图书类别的基本信息。如类别名称、备注信息等,点击保存按钮,调用后台的java类catelogServlett把图书类别信息保存到数据库。操作员管理界面如下图





图4.2 图书类别管理模块界面



(2)图书类别管理模块关键代码

public void catelogAdd(HttpServletRequest req,HttpServletResponse res)

{

String name=req.getParameter("name");

String jieshao=req.getParameter("jieshao");

String del="no";

String sql="insert into t_catelog values(?,?,?)";

Object[] params={name,jieshao,del};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();



req.setAttribute("message", "操作成功");

req.setAttribute("path", "catelog?type=catelogMana");



String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}



public void catelogDel(HttpServletRequest req,HttpServletResponse res)

{

String sql="update t_catelog set del=''yes'' where id="+Integer.parseInt(req.getParameter("id"));

Object[] params={};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();



req.setAttribute("message", "操作成功");

req.setAttribute("path", "catelog?type=catelogMana");



String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}



public void catelogMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

List catelogList=new ArrayList();

String sql="select from t_catelog where del=''no''";

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

Tcatelog catelog=new Tcatelog();

catelog.setId(rs.getInt("id"));

catelog.setName(rs.getString("name"));

catelog.setJieshao(rs.getString("jieshao"));

catelogList.add(catelog);

}

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();



req.setAttribute("catelogList", catelogList);

req.getRequestDispatcher("admin/catelog/catelogMana.jsp").forward(req, res);

}



4.3 图书管理模块

(1)图书管理界面

管理员登陆系统后,点击左面的菜单“图书管理”,页面调转到图书管理界面,录入图书的基本信息。包括名称、出版社、出版日期、ISBN、库存数量、单价等,点击保存按钮,调用后台的java类BookServet把图书信息保存到数据库。图书管理界面如下图



图4.3 图书管理模块界面



(2)图书管理模块关键代码



String name=req.getParameter("name");

String zuozhe=req.getParameter("zuozhe");

String chubanshe=req.getParameter("chubanshe");

String chubanriqi=req.getParameter("chubanriqi");



String isbm=req.getParameter("isbm");

String price=req.getParameter("price");

String yeshu=req.getParameter("yeshu");

String kucun=req.getParameter("kucun");

String catelog_id=req.getParameter("catelog_id");







String sql="insert into t_book values(?,?,?,?,?,?,?,?,?,?)";

Object[] params={name,zuozhe,chubanshe,chubanriqi,

isbm,price,yeshu,kucun,

catelog_id,"no"};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();



List bookList=new ArrayList();

String sql="select from t_book where del=''no''";

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TBook book=new TBook();



book.setId(rs.getInt("id"));

book.setName(rs.getString("name"));

book.setZuozhe(rs.getString("zuozhe"));

book.setChubanshe(rs.getString("chubanshe"));



book.setChubanriqi(rs.getString("chubanriqi"));

book.setIsbm(rs.getString("isbm"));

book.setPrice(rs.getString("price"));

book.setYeshu(rs.getString("yeshu"));



book.setKucun(rs.getString("kucun"));

book.setCatelog_id(rs.getInt("catelog_id"));

book.setDel(rs.getString("del"));



bookList.add(book);

}

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();



req.setAttribute("bookList", bookList);

req.getRequestDispatcher("admin/book/bookMana.jsp").forward(req, res);

4.4 读者管理模块

(1)读者模块界面

在该界面中首先输入读者基本信息。单击“提交”按钮,即可完成读者录入操作。



图4.3 读者模块界面

(2)读者管理关键代码

public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException

{

String type=req.getParameter("type");



if(type.endsWith("userMana"))

{

userMana(req, res);

}

if(type.endsWith("userAdd"))

{

userAdd(req, res);

}

if(type.endsWith("userDel"))

{

userDel(req, res);

}

if(type.endsWith("userAll"))

{

userAll(req, res);

}

}





public void userAdd(HttpServletRequest req,HttpServletResponse res)

{

String name=req.getParameter("name");

String sex=req.getParameter("sex");

String age=req.getParameter("age");

String address=req.getParameter("address");



String tel=req.getParameter("tel");

String email=req.getParameter("email");

String jiehao=req.getParameter("jiehao");

String del="no";





String sql="insert into t_user values(?,?,?,?,?,?,?,?)";

Object[] params={name,sex,age,address,tel,email,jiehao,del};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();



req.setAttribute("message", "操作成功");

req.setAttribute("path", "user?type=userMana");



String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}



public void userDel(HttpServletRequest req,HttpServletResponse res)

{

String sql="update t_user set del=''yes'' where id="+Integer.parseInt(req.getParameter("id"));

Object[] params={};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();



req.setAttribute("message", "操作成功");

req.setAttribute("path", "user?type=userMana");



String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

4.5 图书借阅管理模块

(1)图书借阅模块界面

管理员登陆系统后,点击左面的菜单“图书借阅管理”,页面调转到图书借阅管理界面,录入图书借阅的基本信息。如图书ID、读者ID、借阅数量、借阅时间等,点击保存按钮,调用后台的java类JieyueServlett把图书借阅信息保存到数据库。图书借阅管理界面如下图





图4.3 图书借阅模块界面

(2)借阅管理关键代码

String user_id=req.getParameter("user_id");

String book_id=req.getParameter("book_id");

String jieyueshuliang=req.getParameter("jieyueshuliang");

String jieyueShijian=req.getParameter("jieyueShijian");



String shifouguihuan="否";

String guihuanshijian="";

String del="no";





String sql="insert into t_jieyue values(?,?,?,?,?,?,?)";

Object[] params={Integer.parseInt(user_id),

Integer.parseInt(book_id),

Integer.parseInt(jieyueshuliang),

jieyueShijian,

shifouguihuan,

guihuanshijian,

del};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

List jieyueList=new ArrayList();

String sql="select from t_jieyue where del=''no''";

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TJieyue jieyue=new TJieyue();



jieyue.setId(rs.getInt("id"));

jieyue.setUser_id(rs.getInt("user_id"));

jieyue.setBook_id(rs.getInt("book_id"));

jieyue.setJieyueshuliang(rs.getInt("jieyueshuliang"));



jieyue.setJieyueshijian(rs.getString("jieyueshijian"));

jieyue.setShifouguihuan(rs.getString("shifouguihuan"));

jieyue.setGuihuanshijian(rs.getString("guihuanshijian"));

jieyue.setDel(rs.getString("del"));



jieyue.setUser(liuService.getUser(rs.getInt("user_id")));

jieyue.setBook(liuService.getBook(rs.getInt("book_id")));





jieyueList.add(jieyue);

}

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();







































第5章 系统测试

5.1 测试目的

系统测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。系统测试是软件质量保证的关键环节,直接影响着软件的质量评估。测试不仅要讲究策略,更要讲究时效性。验收测试作为系统测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用所有功能都可以实现,系统运行良好,但是还有很多不够完善的地方,需要以后在使用的过程中继续完善。











XXXXX

2011-4-15 上海商学院

















































- IV -



- I -











- 38 -



















































































献花(0)
+1
(本文系zy_360tsg原创)