首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 计算机论文 → 计算机应用 |
|
|||||
图书馆管理系统数据维护子系统 | |||||
收集整理:佚名 来源:本站整理 时间:2012-07-06 19:48:54 点击数:[] ![]() |
|||||
[本篇论文由5var5VAR论文频道为您收集整理,5VAR论文频道http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持] |
第一章 绪 论
1.1 选题背景与意义
二十一世纪是信息高度交流与发展的时代,而计算机系统则在信息时代扮演着极为重要的角色,随着计算机的不断发展,计算机已渗透到各个领域,图书馆也不例外,图书馆的计算机化已不容迟缓。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。由于图书馆主要从事大量图书资料的储存和流通。所以长期以来,用手工的方式对图书馆图书信息进行管理,效率低、工作量大。这种管理方式严重阻碍教务管理科学化、高效化的进程。
高校图书馆是高校最大的信息源,是高校发展的关键。在现代大学图书馆管理中,如何方便快捷地为读者提供服务,提高图书馆的利用率等问题已经变得越来越突出。借助网络,为图书馆建立一个信息管理系统,给读者提供一个电子平台,将大大提高图书馆的管理水平和现代化程度。
通过计算机管理系统在高校图书馆中的使用,真正实现了多机制的管理方式,使管理者随时掌握图书的状态,维护图书,提高工作效率,方便图书的管理。这从根本上使工作规范化,即管理工作基于工作流程,完全采用计算机技术处理图书管理工作,使管理工作人员方便快捷地共享、交流信息,同时又能实现迅速、全方位的信息采集、信息处理。计算机管理系统检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点,能够极大地提高图书馆管理的效率,也是学校的科学化、正规化管理的重要条件。
1.2 图书馆现状分析
目前很多大型的图书馆已经有了一整套比较完善的信息管理系统,但在一些小型图书馆中,大部分工作仍需由手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态、及时地调整图书结构。为了更好的满足当前读者的借阅要求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。
图书馆信息化和数字化已经是高校图书馆现代化的一个重要标志。图书馆管理信息系统作为图书馆开展业务工作和读者服务的基础,在相当大的程度上代表和体现了图书馆自动化的水平,利用现代计算机网络技术和数据库开发技术建立图书馆管理系统,规范图书资料、多媒体信息的管理,提高信息流通的便捷性和时效性,并能够最大限度地利用现有图书馆的各种资源及场地,更好得为教学、科研服务。目前,图书馆管理软件的体系结构多为C/S模式,这种模式经过几年的发展已经比较成熟,但其缺陷也很明显,客户维护运行成本高,跨平台及伸缩性差。因此,现在随着网络快速不断的发展,B/S模式的图书馆管理系统越来越受到人们的青眯。与大多数C/S体系结构的管理系统相比,B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。基于B/S的图书馆管理系统将能更加有效地服务于各个高校的图书馆。
1.3 系统功能结构图
分析图书馆管理系统的业务流程以及功能需求,将系统简化分成多个子系统模块。如图1.1所示:
图1.1 图书馆管理系统功能结构图
1.4 论文内容概述
本论文主要以图书馆管理系统的分析设计和实现这两部分为出发点来进行编写的。
一:对图书馆管理系统进行了总体分析。详细介绍了系统开发的目标,对图书馆的业务需求和业务流程进行了需求分析,概要设计了系统功能模块、开发架构以及相应的UML,详细设计了系统数据库。在分析设计过程中,全面详细地介绍了开发整个图书馆管理系统的内容。
二:在系统实现中,本论文重点介绍了图书馆管理系统中数据维护子系统的实现。包括:用户登入、系统设置、读者信息管理、图书信息管理、排行统计等功能模块内容。
第二章 系统开发的技术基础
2.1 Struts及MVC模式简介
Struts是Jakarta的一个子项目,是一个开源框架,它提供了一种方法可以在一个Web应用程序中同时使用Java Server Pages(JSP)和Servlet。它的目的是要解决完全由JSP或完全由Servlet实现的传统应用程序中固有的问题,例如,用JSP很难将Java代码同网页的数据显示分开,Java代码容易同html混在一起,使后期维护中工作量较大。
Struts是一个MVC框架(Model/View/Controller Framework),用于快速开发Java Web应用程序,以三层结构来开发软件项目,不但使开发结构明了,而且有助于项目的维护。Struts的重点在C(Controller)控制端,也为V(View)视图端提供了一系列定制的标签(Custom Tag)。但Struts几乎没有涉及M(Model)模型端,所以Struts可以采用Java实现的任何形式的商业逻辑。
MVC是国外用的比较多的一种设计模式,包括三类对象:Model是应用对象,也就是功能逻辑;View是在屏幕上的表示,也就是UI界面;Controller定义用户界面对用户输入的响应方式,相当于请求和应答的事件。Struts框架的MVC流程图如图2.1所示:
图2.1 Struts框架MVC流程图
Struts框架主要分为以下四部分:
1、模型(Model):采用JavaBean和EJB组建,设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象,由ActionForm的派生类实现对客户端表单数据的封装及简单的检验。
2、视图(View):利用Struts中提供的自定义标签库编写用户界面把应用逻辑和现实逻辑分离。View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用标签库我们可以快速建立应用系统的界面。
3、控制器(Controller):Struts为我们提供核心控制部分的实现,配置ActionMapping对象完成URI地址的映射及匹配用户表单和ActionForm类的对应关系。
4、编辑两个配置文件:web.xml和struts-config.xml。通过它们配置Struts系统中各个模块之间的交互。
2.2 系统开发环境介绍
2.2.1 Eclipse
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。不过Eclipse 附带了一个标准的插件集,包括 Java开发工具(Java Development Tools,JDT)。此外,Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统
上图主要描述了图书馆管理系统中图书借阅的业务流程,管理员必须进行读者信息管理(读者种类设置、读者信息登记)、图书信息管理(图书种类设置、出版社设置、书库设置、图书信息登记)、工作人员管理(权限设置、工作人员登记),系统可以在此基础上将这些基本信息保存到图书借阅信息表中,这就是一般图书馆管理系统的主要业务工作。
3.3 概要设计
3.3.1 功能模块设计
图书馆管理系统是一个由多个系统管理模块组成的数据库应用程序,主要包括:系统管理、图书管理、读者管理、图书借还、查询统计等模块组成。
系统设置:包括图书馆信息、管理员设置、参数设置、书库设置等功能。
图书管理:包括图书类型设置,图书档案管理等功能。
读者管理:包括读者类型管理,读者档案管理等功能。
图书借还:包括图书借阅、图书续借、图书归还等功能。
查询统计:包括图书档案、借阅查询,借阅到期提醒,借阅排行等功能。
3.3.2 系统架构设计
本图书馆管理系统采用Struts框架设计,是一个轻量级架构的系统。遵循多层次的架构模式,从上到下依次为视图层、控制器层、模型层、持久化层和数据库层。其中前三层使用Struts框架实现,持久化层采用DAO模式[10],数据库层则采用MySQL数据库。如图3.2所示:
图3.2 图书馆管理系统层次架构
① 视图层:图书馆管理系统操作页面,通过JSP技术处理将web页面呈现给用户。
② 控制层:系统Action接收用户HTTP请求,ActionServlet通过struts-config.xml查找请求的URI所对应的action,再根据action元素的name匹配值找到相应的ActionForm。
③ 业务层:处理图书馆业务时,根据action找到相应的ActionForm之后,执行execute()方法,返回一个ActionForward对象,将请求重新定向到指定的JSP页面[11]。
④ 持久化层:采用DAO模式设计,其优势是可以将图书馆业务层与其数据库的操作分离开,对数据库的操作全部由DAO代理。如图3.3所示:
图3.3 图书馆管理系统DAO设计模式
⑤ 数据库层:通过使用JDBC的类包实现系统与数据层之间的联系,实现与MySQL数据库的交互,保存相关数据。
3.3.3 用例图
用例图是作为参与者的外部用户所能观察到的系统功能的模型,用来描述系统使用者与系统的交互。如图3.4所示:
读者:可以查看个人借书信息和图书馆的图书信息。
工作人员:在以下用例图中,工作人员主要负责系统中图书借阅这一模块任务。由于本系统具有较好的权限管理功能,因此,管理员可以根据实际需要对工作人员进行功能权限设置,包括:图书信息管理,读者信息管理,图书借还管理,系统查询等。
管理员:管理员具有全部权限,可以进行系统的任何操作功能。其中很重要的一个功能是对工作人员的权限进行分配管理。管理员的主要工作一般是进行系统设置。
图3.4 系统用例图
3.3.4 序列图
序列图是一个用于描述对象组随着时间在某些行为方面进行协作的模型,以图的形式详细描述了业务角色和业务主角之间的交互,以及如何在执行业务用例时访问业务实体。如图3.5主要描述了图书馆系统管理员添加系统用户的序列图,此外,系统中其他业务也都可以用序列图表示,这样可以清晰图书馆业务运作流程,方便系统开发。
图3.5 用户添加序列图
3.4 详细设计
3.4.1 系统E-R图
E-R图,即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。图3.6详细描述了整个图书馆管理系统的实体联系关系。
3.4.2 数据库设计
通过对图书馆管理系统的业务分析,使用PowerDesigner进行数据库设计,此图书馆管理系统的数据库主要由12个数据表组成,具体表设计如下所示:
表3.1 图书馆信息表(tb_library)
表3.2 管理员信息表(tb_manager)
表3.3 图书馆权限表(tb_purview)
表3.4 参数设置表(tb_parameter)
表3.5 书库信息表(tb_bookcase)
表3.6 图书类型表(tb_booktype)
表3.7 出版社信息表(tb_publishing)
表3.8 图书信息表(tb_bookinfo)
表3.9&
表3.10 读者信息表(tb_readerinfo)
表3.11 图书借阅信息表(tb_borrow)
表3.12 图书归还信息表(tb_giveback)
图书馆管理系统各数据表之间业务联系密切,很多数据表之间具有主外键关系。图3.7主要是其借还书的数据联系。此外,图书信息表、读者信息表、管理员信息表也都有各自的主外键联系。
图3.7 数据表主外键
第四章 图书馆数据维护子系统的实现
本系统采用了proxool数据库连接池,这是一个Java SQL Driver驱动程序,提供了对所选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。具有透明性,开放性,标准性,易用性等特点[12],完全可配置,可以透明地为JDBC驱动程序增加连接池功能。
4.1 登入模块
功能:用户进入系统的入口,如图4.1所示。
用户输入用户名与密码,点确定将数据提交给login.jsp,在jsp页面找到相应的action,action通过ActionForm获取数据,然后通过DAO与数据库连接,在数据库查找相应数据以确定用户登入是否合法。
图4.1 登入页面
以下为系统登入信息验证的Action代码:(其中ActionForm,DAO的代码在这就省略了)
public ActionForward managerLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ManagerForm managerForm = (ManagerForm) form;
managerForm.setName(managerForm.getName());
managerForm.setPwd(managerForm.getPwd());
int ret =managerDAO.checkManager(managerForm);
System.out.print("验证结果ret的值:" + ret);
if (ret == 1) {
HttpSession session=request.getSession();
session.setAttribute("manager",managerForm.getName());
return mapping.findForward("managerLoginok");
} else {
request.setAttribute("error","您输入的管理员名称或密码错误!");
return mapping.findForward("error");
}
}
登入成功,则进入主页面,并显示权限相匹配的菜单。主菜单中每一部分都是一个功能模块。进入主页面时,系统将显示图书借阅排行信息,真实反映图书馆中图书的借阅情况。主页面如图4.2所示:
图4.2 主页面
主菜单中的功能模块通过JavaScript来控制显示,系统管理员可以根据实际情况对工作人员进行这些功能模块的权限分配,当用户登入的时候只会显示有权限的那些模块内容。
4.2 系统设置模块
本模块主要是针对系统管理员,用来对图书馆重要信息进行管理。本模块包括四部分内容,分别是:图书馆信息、管理员设置、参数设置、书库设置。
图书馆信息:为系统以后的扩展做准备的,使外界可以很好地了解该图书馆的基本情况。如图4.3所示:
图4.3 图书馆信息
管理员设置:为控制不同工作人员的权限,保证信息的安全性,如右图4.4所示:
图4.4 管理员设置
为保证系统管理员不小心将自己删除而导致系统不能正常工作,将设置admin为系统默认初始管理员,通过Ja
只有被授权,功能按钮才能在主菜单中显示,主菜单如图4.6所示:
图4.6 系统主菜单
图书馆管理员权限设置ManagerDAO.java,具体代码如下:
public ManagerForm query_update(ManagerForm managerForm) {
ManagerForm managerForm1 = null;
String sql = "select m.*,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysquery from tb_manager m left join tb_purview p on m.id=p.id where m.id=" +managerForm.getId() + "";
ResultSet rs = conn.executeQuery(sql);
try {
while (rs.next()) {
managerForm1 = new ManagerForm();
managerForm1.setId(Integer.valueOf(rs.getString(1)));
managerForm1.setName(rs.getString(2));
managerForm1.setPwd(rs.getString(3));
managerForm1.setSysset(rs.getInt(4));
managerForm1.setReaderset(rs.getInt(5));
managerForm1.setBookset(rs. getInt (6));
managerForm1.setBorrowback(rs.getInt(7));
managerForm1.setSysquery(rs.getInt(8));
}
} catch (SQLException ex) {}
return managerForm1;
}
参数设置:为控制读者的办证费,以及有限期限,使图书馆管理制度更加优越。如图4.7所示:
图4.7 参数设置
书库设置:根据图书馆的实际情况反应,为图书信息的录入做前期准备。如图4.8所示:
图4.8 图书馆书库
4.3 读者管理模块
本模块主要包括两部分内容:读者类型管理、读者档案管理。
读者类型管理:对读者的类型进行分类,并且能够对不同的读者进行不同的可借书数量设置,方便对不同读者的管理。如图4.9所示:
图4.9 读者类型
读者档案管理:可对读者的信息进行增加,修改和删除操作。此外,点击姓名上的超链接还能进行读者详情的查看。图4.10为读者档案信息列表。
图4.10 读者信息
读者档案信息添加,如图4.11所示:
图4.11 读者档案信息添加
同时,该系统可以通过Excel导入读者信息,大大减少图书馆工作人员的工作量。如图4.12所示:
图4.12 读者信息Excel导入
读者信息详情,通过读者信
出版社管理:为图书信息的录入做前期准备。如图4.15所示:
图4.15 图书出版社
图书档案管理:可对图书的信息进行增加,修改和删除操作。此外,点击图书名称上的超链接还能进行图书详情的查看。如图4.16所示:
图4.16 图书信息
图书档案信息添加,如图4.17所示:
图4.17 图书档案信息添加
图书信息详情,如图4.18所示:
图4.18 图书信息详情
4.5 业务数据维护模块
业务数据维护模块主要包括借还书数据、系统查询维护。
借还书数据维护:图书借阅时,读者可借书量由读者类型决定,根据读者类型表中的可借天数,如果超过可借数量,则将提示不能再借阅。如图4.19所示:
图4.19 图书借阅
当借书量超过读者可借数量时,通过JavaScript脚本提示,代码如下:
if(form.number.value-form.borrowNumber.value<=0){
alert("您不能再借阅其他图书了!");return;
}
系统查询维护包括图书档案查询、图书借阅查询、借阅到期提醒。
图书档案查询:可使用图书条形码、类别、书名、作者、出版社、书库进行模糊查询。
图书借阅查询:支持多条件查询。
图书到期提醒:根据图书应还日期,将借阅超期的图书信息列出来,没有则提示“暂无到期提醒信息!”。如图4.20所示:
图4.20 借阅到期提醒
图书应还日期计算代码如下:
String date_str=String.valueOf(date);
String dd = date_str.substring(8,10);
String DD = date_str.substring(0,8)+String.valueOf(Integer.parseInt(dd) + days);
java.sql.Date backTime= java.sql.Date.valueOf(DD);
4.6 排行统计模块
统计排行包括两部分内容:读者借阅排行榜、图书借阅排行榜。
读者借阅排行榜:统计读者的借阅情况。如图4.21所示:
图4.21 读者借阅排行
读者借阅排行Borrow.java,代码如下所示:
private ActionForward readerBorrowSort(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
request.setAttribute("readerBorrowSort",borrowDAO.readerBorrowSort());
System.out.println(request.getParameter("page2"));
request.setAttribute("page2",request.getParameter("page2")==null?0:request.getParameter("page2"));
return mapping.findForward("readerBorrowSort");
}
读者借阅排行BorrowDAO.java,代码如下所示:
public Collection readerBorrowSort() {
String sql = "select * from (SELECT readerid,count(readerid) as degree FROM tb_borrow group by readerid) as borr join (select r.*,t.name as typename,t.number from tb_reader r left join tb_readerType t on r.typeid=t.id) as reader on borr.readerid=reader.id order by borr.degree desc limit 10";
Collection coll = new ArrayList();
BorrowForm form =
图书借阅排行榜:统计图书的借阅情况。如图4.22所示:
图4.22 图书借阅排行
4.7 口令管理模块
为保证数据库中账号密码的安全,在系统开发过程中使用了des加密解密技术。当保存用户密码到数据库中时将其加密,本系统通过将奇偶位数据组合,例如在jsp页面密码框中输入123456,保存在数据库中时保存为135246。当用户登入系统时,输入密码,系统转化输入内容将其解密,然后与数据库中密码字段进行比较来确定输入的密码是否正确。同样,用户修改密码也以这种方式进行加密处理,这样可以保证系统安全,即使数据库中的密码字段被人截取也不能顺利进入系统。
第五章 总 结
经过一个学期的努力,图书馆管理系统基本开发完毕。目前,该系统基本可以实现一般图书馆的日常业务管理工作,但是由于时间及个人精力有限,以及对图书馆部分业务的不熟悉,该系统还是有一些不尽人意的地方,这些有待进一步改善。
整个图书馆管理系统的开发过程,从需求分析,概要设计,详细设计,到代码编写,我更加熟悉了系统软件开发的过程,使我提高了实际开发系统的能力,从以前的理论上升到实际,真正做到了学以致用。在整个系统的开发过程中,我碰到了很多问题,但是在个人的不断努力,以及老师同学的帮助下,问题都已经解决。
本系统采用Struts框架,MVC设计模式和DAO设计模式,JDBC连接MySQL数据库开发,具有较好的扩展性,为以后系统的维护和升级做了很好的铺垫。在系统的开发过程中我学习了这些新的JAVA知识,我发现这些框架和设计模式的强大功能,对我以后的工作生活将有很大的帮助。同时,通过对图书馆的不断分析,使我更加了解了图书馆的业务流程工作,以及图书馆的其他一些相关知识,这都将是我人生中的宝贵财富。
参考文献
黄梯云,李一军.管理信息系统(第3版)[M].北京:高等教育出版社,2004,10.
齐顺昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,2004.
狄祥义,张跃平.JSP实用教程[M].北京:清华大学出版社,2003.
高红岩.Struts使用开发指南[M].北京:科学出版社,2007.
(美)Ted Husted.Struts in Action:Building Web Applications with the Leading Java Framework[M].Manning Publications Co.2005,5.
陈天和.Struts,Hibernate,Spring集成开发宝典[M].北京:电子工业出版社,2007.
(美)Bruce Eckel.thinking in java 4 Edition[M].北京:机械工业出版社,2006.
王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.
[9](奥)科夫勒.MySQL5权威指南(第3版)[M].北京:人民邮电出版社,2006,12.
[10](美)(Larman,c.).UML和模式应用(原书第3版)[M].北京:机械工业出版社,2006,5.
[11](美)Vijay Srinivasan Lakshman.Document Management System using Struts[R]. Arizona State University,2006.
[12](美)Deepak Alur,John Crupi,Dan Malks.Core J2EE Patterns:Best Practices and Design Strategies,Second Edition[M].北京:机械工业出版,2005.
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |