08.图书管理系统.doc

上传人:hw****26 文档编号:3518717 上传时间:2019-06-01 格式:DOC 页数:51 大小:2.11MB
下载 相关 举报
08.图书管理系统.doc_第1页
第1页 / 共51页
08.图书管理系统.doc_第2页
第2页 / 共51页
08.图书管理系统.doc_第3页
第3页 / 共51页
08.图书管理系统.doc_第4页
第4页 / 共51页
08.图书管理系统.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、第 8 章 慕 仁 大 学 图 书 馆 管 理 系 统(JSP+Servlet+Spring+Oracle 实现,共 4100 行代码)近年来,随着出版业的发展,图书数量倍增,高校的图书馆也不断发展,但由于学生和图书的数量太多,传统的图书借阅及图书管理越来越不适应学校规范管理的要求。而计算机信息技术的飞速发展,使得运用计算机管理图书成为可能。本章将以开发一个图书管理系统为例,介 绍此 类管理系统软件的开发。通过本章的学习,读者可以灵活运用如下内容:恰当使用 Spring 框架提供的 IoC 容器进行各受管 Bean 之间的注入。 使用 JdbcTemplate 将数据源封装,实现数据库中数据的

2、查询与更新。 合理使用事务进行数据库中数据的更新,保证数据的一致性。 恰当封装公用代码,实现代码的可复用性。 合理使用 SQL 语句,提高系 统的性能。 亮剑 Java Web 项目开发案例导航3248.1 开发背景随着学校的发展,学生人数日益增多,高校图书馆的管理工作变得繁琐,而传统的人工管理方式已不能满足数量巨大的图书和其借阅信息的管理要求,经详细分析其有如下缺点: 图书和学生信息不易维护,数据量大。 查询不方便,借阅和还书速度过慢。 各种信息的记录靠手写,数据容易丢失。为了弥补上述缺陷,便于图书的维护和借阅工作,提高借阅和还书的效率,开发出此图书管理系统,以解决效率低下问题,实现图书管理

3、信息化。 8.2 系统分析开发此图书管理系统之前,做好全面的系统分析工作,知道其要实现哪些具体的功能,并根据分析做好数据库的设计工作,为后期开发打下基础。 8.2.1 需求分析通过与某高校图书馆管理人员进行交流后,最终确定本系统要具备以下功能。1学生用户端 查询图书,学生用户可以对图书馆的图书进行查找,以找到自己需要的书。 预约图书,如果想借的书已经借出,可以进行图书预约。 学生可以进入系统,查询自己的基本信息(如当前借阅和历史借阅等信息) 。 挂失图书,图书如果丢失,可以在学生端进行挂失。2管理员端 学生管理,对学生信息的增、删、改、查等操作。 图书管理,包括对图书的增、删、改等操作。 管理

4、员管理,有权限控制,分为超级管理员和普通管理员。8.2.2 可行性分析可行性分析是对项目的可行程度进行分析,管理层根据可行性分析决定是否开发此系统。其包括技术可行性、经济可行性、营运可行性。通过对需求分析的研究,对本项目的可行性分析如下。1引言图书是人类获取知识的最重要的途径之一,随着读者和书籍的日益增多,对图书的管理要求也日益提高,因此实现图书的信息化管理势在必行。1)编写目的从现有技术及图书馆需求等方面研究该图书管理系统的可行性,为上层决策提供依据。2)项目背景 项目提出者:某高校图书馆。 项目开发者:某软件公司。 系统用户:该校学生用户及图书馆的管理人员。第 8 章 慕仁大学图书馆管理系

5、统3252可行性分析的前提1)系统要求学生端需要包含学生借阅图书、预约图书、丢失图书和罚款记录的基本信息,管理员端则需要对这些信息进行管理,如借阅的管理、学生的管理及图书的管理等,另外要实现图书的查询功能,使用户可方便地找到想要的书籍。2)系统目标图书馆管理系统的目标是实现图书馆的管理信息化,提高借阅工作的管理效率,更好地维护图书的信息,为广大学生借阅图书带来方便。3对图书馆支出与收益的分析该图书馆的管理比较松散,大部分工作需要手工操作,对诸多信息的维护不仅费用高、工作量大,而且信息的安全性和数据的完整性很难得到保障。学校支出了部分的资金进行本系统的开发后,大部分工作实现了自动化,图书馆只花费

6、很少的人力和物力即可进行系统的维护,而且还降低了数据被无意破坏的风险。4对公司技术支持的分析该系统可以采用 JSP+Spring+Tomcat+Oracle 数据库来完成,公司之前已经开发过很多类似的项目,完全可在要求的时间内完成该系统的开发。5对公司支出与收益的分析该项目要求在 20 天内完成,要求有一年的维护期,经分析,去除开发费用及维护费用,公司最后所得利润为 2 万元。对该系统的开发既可以增加公司的技术储备,又可提高对类似项目开发的熟练程度。6社会因素的分析该系统完全由本公司独立开发完成,是按本公司的开发流程进行开发的,在法律方面没有任何侵权行为,完全符合合同的规定。7结论根据上述分析

7、,公司认为此项目结构清晰、功能合理,客户要求的开发时间非常充裕,利润与开发成本比也比较高,可在一定程度上提高公司的效益,因此公司决定开发此项目。8.3 系统设计通过与图书馆管理人员进行更深入地交流并进行了可行性分析后,公司对本系统的功能要求有了较深入地了解,下面就可以确定系统的最终目标及初步的功能结构。8.3.1 系统目标通过系统分析并与图书馆管理人员再次探讨,最终确定系统的最终目标如下。 实现需求分析阶段客户提出的功能。 学生可以在客户端查看预约通知。 界面导航明确,方便学生用户使用。8.3.2 系统功能结构本系统的代码在 4100 行左右,其中包括学生端和管理员端,学生端只能进行简单地查询

8、和修改密码等功能,而管理员则有多项管理功能,其系统结构如图 8-1 所示。亮剑 Java Web 项目开发案例导航326图 书 管 理 系 统 学 生 端 管 理 端 学生登录 修改密码 查询借阅信息 查询账单信息 预约和挂失图书 管理员登录 修改密码 管理员管理 罚款管理 图书检索 图书管理 学生管理 借阅管理 图 8-1 系统结构图8.3.3 构建开发环境开发此图书管理系统所需要用到的软件环境如下。 JDK 1.6 及其以上版本:1.6 版本作为目前的最新版本,增加了许多新特性,读者根据操作平台的不同可到 Sun 官网下载不同版本。 数据库:Oracle 10g 数据库,Oracle 数据

9、库系统是最早商品化的关系型数据库系统,是目前应用最广泛、功能强大、可用性很高的数据库。 Web 服务器: Tomcat 6.0 及其以上版本,其功能强大、方便易用,适应于中小型系统的开发,且 Tomcat 可以从网上免费下载,从而可降低开发成本。 业务层:Spring 2.5 版本,Spring 是一个优秀的 JavaEE 开源框架,其提供的控制反转及面向方面的编程插件式架构降低了应用组件之间的依赖性。8.3.4 学生端预览学生端的功能比较简单,主要是一些信息的查询操作,具体页面如下。(1)启动 Tomcat 服务器,打开浏览器输入正确的地址进入学生端主页,如图 8-2 所示,在此页面输入正确

10、的学号和密码就可以登录进入该系统。(2)登录系统后,就可以单击页面上的导航菜单,进行不同信息的查询功能。单击“读者信息”时,其页面如图 8-3 所示,在此页面可以修改自己的密码。图 8-2 学生端主页 图 8-3 读者信息(3)如果学生想查询自己当前借阅和历史借阅的一些情况,可以单击书刊借阅进入相应页面进行查询,其效果如图 8-4 所示,在此页面可以查询到很多信息,如罚款记录、丢书记第 8 章 慕仁大学图书馆管理系统327录和欠款状态等,并且还可以挂失借阅证。(4)学生预约图书后,可以通过查看预约通知得到自己的预约信息,在此页面可以看到所有通知,也可输入自己的学号进行查询,页面如图 8-5 所

11、示。图 8-4 借阅信息页面 图 8-5 预约通知页面(5)学生 借 书 之 前 可 以 查 找 想 借 书 的 信 息 , 如 是 否 在 馆 等 信 息 , 图 书 检 索 页 面 如 图 8-6 所示 。图 8-6 图书检索页面8.3.5 管理端预览前面介绍了学生端各项功能,其中预约通知和图书检索功能是不需要登录的,这也符合简单易用这一特点,下面将对管理员端进行介绍。 (1)在浏览器输入正确的地址进入管理端主页,该页是管理员登录的页面,登录页面如图 8-7 所示。(2)如果登录的管理员是超级管理员,则可在账号维护页面进行管理员管理,例如选中添加管理员时页面如图 8-8 所示,而普通管理员

12、在此页面只有修改自己密码的功能,单击此页面的其他导航菜单时,均提示没有权限进行操作。图 8-7 管理员登录页面 图 8-8 账号维护(3)在学生管理页面可以对学生进行管理,如添加新生、修改学生信息和删除学生等操亮剑 Java Web 项目开发案例导航328作,页面如图 8-9 所示。(4)当有新书入馆或者需要修改图书信息时,可以在图书管理页面操作实现这些功能,此页面如图 8-10 所示。图 8-9 学生管理页面 图 8-10 图书管理页面(5)当有学生进行借阅或者还书等操作时,可以在借阅管理页面实现,在此页面还可实现学生缴纳罚款的功能,借阅页面如图 8-11 所示。图 8-11 借阅管理页面8

13、.4 数据库设计在整个项目开发之前,做好数据库的分析和设计,充分考虑到要实现的功能,对于开发和后期维护有很重要的作用。8.4.1 数据库分析本项目采用的是 Oracle 数据库,Oracle 数据库系统在全球数据库市场的占有率超过三分之一,在各个行业有着广泛的应用,本项目将采用 Oracle 作为后台数据库。8.4.2 项目 E-R 图该系统包含的实体主要有:图书、学生、管理员,下面将分别介绍各实体及实体间的 E-R 图,通过 E-R 图来解释各实体的属性及其之间的关系。 学生 E-R 图,如图 8-12 所示。 图书和管理员 E-R 图,如图 8-13 所示。密 码 学 号 系 别 权 限

14、班 级 年 龄 性 别 姓 名 学 生 书 名 图 书 编 号 图 书 状 态 进 馆 时 间 价 格 ISBN号 出 版 社 作 者 图 书 登 录 名 权 限 管 理 员 密 码 第 8 章 慕仁大学图书馆管理系统329图 8-12 学生 E-R 图 图 8-13 图书和管理员 E-R 图 各个实体间简单关系,如图 8-14 所示。管 理 员 m 借 阅 学 生 管 理 图 书 n 管 理 m n n 1 图 8-14 实体间简单关系图说明:在系统的开发过程中,数据 库的设计直接影响着系统的后期开发,因此在数据库的设计过程中,要考虑周全,为后期的维护和系统性能的 扩展打下良好的基础。8.4

15、.3 数据库表的设计本系统共有 6 张表:学生基本信息表、管理员信息表、图书信息表、借阅关系表、罚款记录表、预约信息表,下面将分别对各表进行介绍。(1)学生基本信息表:用于记录学生用户的基本信息,其主要字段为学生学号、密码、姓名等,具体设计如表 8-1 所示。表 8-1 学生基本信息表(student )字段名称 数据类型 字段大小 是否主键 是否为空 说明StudentNO varchar 20 是 否 学号Password varchar 20 否 否 密码Name varchar 20 否 否 姓名Age number 2 否 是 年龄Gender varchar 2 否 是 性别Cla

16、ss varchar 50 否 是 班级Department varchar 50 否 是 系别Permitted number 1 否 是 借书权限建立该表的 SQL 语句如下:create table student(StudentNO varchar(20) primary key, Password varchar(20) not null,Name varchar(20) not null, Age number(2),Gender varchar(2),Class varchar(50),Department varchar(50), Permitted number(1) );(

17、2)管理员基本信息表:用于记录管理员的用户 ID、密码及级别,详细情况如表 8-2 所示。表 8-2 管理员基本信息表(manager)字段名称 数据类型 字段大小 是否主键 是否为空 说明ManageID varchar 20 是 否 管理员登录名ManagePwd varchar 20 否 否 登录密码ManageLevel number 1 否 否 管理员级别亮剑 Java Web 项目开发案例导航330建立该表的 SQL 语句如下:create table manage( ManageID varchar(20), ManagePwd varchar(20) not null,Mana

18、geLevel number(1) default 0,primary key(ManageID);(3)图书信息表:用于记录图书的基本信息,其具体实现如表 8-3 所示。表 8-3 图书基本信息表(book)字段名称 数据类型 字段大小 是否主键 是否为空 说明BookNO varchar 10 是 否 图书编号BookName varchar 50 否 是 图书名称Author varchar 50 否 是 图书作者Publish varchar 50 否 是 图书出版社BookIsbn varchar 20 否 是 图书 ISBN 号BuyTime varchar 50 否 是 进馆时间

19、BookPrice number 5 否 是 图书价格BookStatus number 1 否 否 图书状态建立该表的 SQL 语句如下:create table book(BookNO varchar(10) primary key,BookName varchar(50),Author varchar(50),Publish varchar(50),BookIsbn varchar(20),BuyTime varchar(50),BookPrice number(5,2),BookStatus number default 0);(4)借阅关系表:用来记录学生用户借阅图书的基本信息,包括

20、学号、书号、借阅的开始时间和结束时间等信息,其各字段的详细信息如表 8-4 所示。表 8-4 借阅信息表(borrow_list)字段名称 数据类型 字段大小 是否主键 是否为空 说明BorrowNO number N/A 是 否 借阅记录主键StudentNO varchar 20 否 否 学生学号BookNO varchar 20 否 否 借阅书号StartTime varchar 20 否 否 借阅开始时间End varchar 20 否 否 借阅结束时间XuJie number 1 否 否 是否续借Deal number 1 否 否 借阅记录的状态建立该表的 SQL 语句如下:crea

21、te table borrow_list(BorrowNO number,StudentNO varchar(20),BookNO varchar(10),StartTime varchar(20) not null,End varchar(20) not null, XuJie number(1) default 0,Deal number(1) default 0,primary key(BorrowNO),Foreign key(StudentNO) references student(StudentNO) on delete cascade, Foreign key(BookNO)

22、references book(BookNO) on delete cascade);(5)罚款记录表:用来记录学生罚款的信息,包括学生学号和罚款金额等信息,具体设计如表 8-5 所示。表 8-5 罚款信息表(amercement)字段名称 数据类型 字段大小 是否主键 是否为空 说明AmerceNO number N/A 是 否 罚款记录主键BorrowNO number N/A 否 否 对应借阅记录号StudentNO varchar 20 否 否 对应学生学号第 8 章 慕仁大学图书馆管理系统331Detail varchar 20 否 否 罚款项目Mulct number 5 否 否

23、罚款金额Pay number 2 否 否 是否缴纳PayTime varchar 20 否 是 缴纳时间建立该表的 SQL 语句如下:create table amercement(AmerceNO number,BorrowNO number,StudentNO varchar(20),Detail varchar(20) not null,Mulct number(5,2) not null,Pay number(1) default 0,PayTime varchar(20), primary key(AmerceNO),Foreign key(BorrowNO) references

24、borrow_list(BorrowNO) on delete cascade,Foreign key(StudentNO) references student(StudentNO) on delete cascade);(6)预约信息表:用来记录学生预约的图书信息,包括图书编号和学生学号及取书截止日期等信息,具体设计如表 8-6 所示。表 8-6 预约记录信息表(order_list)字段名称 数据类型 字段大小 是否主键 是否为空 说明OrderNO number N/A 是 否 预约记录主键StudentNO varchar 20 否 否 学生学号BookNO varchar 10 否

25、 否 图书编号EndTime varchar 20 否 是 截止日期建立该表的 SQL 语句如下:create table order_list(OrderNO number,StudentNO varchar(20), BookNO varchar(10), EndTime varchar(20),primary key(OrderNO),Foreign key(StudentNO) references student(StudentNO) on delete cascade,Foreign key(BookNO) references book(BookNO) on delete cas

26、cade);提示:因为涉及外键的问题,读 者创建表时, 请按照如上顺序 创建,另外有些表的主键是自增列,这在 Oracle 中是用序列和触发器完成的,具体实现请参阅光盘中本章目录中的 db.sql 脚本文件,这里不再赘述。8.5 开发前的准备工作由于本系统采用 JSP+Spring 开发,并且使用数据源连接池,所以要先做好相关的配置工作,包括建立数据库中的表,并插入一些测试数据等。8.5.1 表的建立和测试数据的插入8.4.3 节已经对表的设计进行了详细的介绍,下面将介绍如何在 Oracle 数据库中创建这些表,并插入一些数据用于开发中的测试,具体步骤如下。双击 SQL Plus,输入正确的用

27、户名和密码后,进入 Oracle 的 SQL Plus 命令行客户端。执行上一节介绍的创建表的 SQL 语句,并创建相应的序列和触发器,这些工作做完后,就可以插入一些测试数据了,插入测试数据的 SQL 语句如下。insert into manage values(wyf,123456,1);insert into student values(200501,123456,张 三 ,22,男 ,级 计 算 机 3班 ,计 控 学院 ,1);insert into book(BookNO,BookName,Author,Publish,BookIsbn,BuyTime,BookPrice) val

28、ues(368779,使 用 Ant进 行 Java开 发 ,美 Erik Hatcher Steve Lougharn,电 子 工 业 出 版亮剑 Java Web 项目开发案例导航332社 ,7121016834,2008-5-26,69.00);insert into borrow_list (StudentNO,BookNO,StartTime,End)values(200501,368779, 2008-9-26,2008-11-15);update book set BookStatus=1 where BookNO=368779;insert into order_list(St

29、udentNO,BookNO,EndTime)values (200502,358134, 2008-10-16);commit;对于各张表中信息的插入,请参考光盘中本章中的数据库脚本 db.sql,在此不再赘述。至此,代码开发前的准备工作已经完成,下面将详细介绍具体的开发过程。8.5.2 数据源的配置由于连接数据库使用的是数据源连接池技术,所以在开发之前要进行相应的配置,具体步骤如下。将光盘中软件目录下的 classes12.jar 复制到 Tomcat 安装目录下的 lib 文件夹中,此JAR 文件为连接 Oracle 数据库的驱动 JAR 包。打开 Tomcat 安装目录下的 conf

30、文件夹中的 server.xml 文件,在最后一个标记之前添加如下配置。提示:不同机器上安装的 Oracle 数据库用户名和密码不一样,所以在进行具体配置时以读者机器上为准。在 Tomcat 安装目录下的 webapps 中新建一个名为 BookManage 的文件夹,并将光盘中本章中的 css、img 和 js 文件夹复制到 BookManage 文件夹下,以后开发的所有 JSP 文件均放在此文件夹下。在 BookManage 中新建目录 WEB-INF,并在 WEB-INF 目录下新建两个文件夹,分别命名为 classes 和 lib,将光盘中软件目录下的 Spring 的支持 JAR 包复制到新建的 lib 文件夹下,并在 WEB-INF 文件夹下新建一个 web.xml,在其中添加如下配置。DB Connectionjdbc/bookjavax.sql.DataSourceContainerindex.jsp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。