在图书馆管理中,图书管理系统是图书室的核心管理系统,是一个由人、计算机等组成的能进行管理信息收集、传递、加工、保存、维护和使用的系统。下面是我为大家整理的图书管理系统 毕业 论文,供大家参考。
浅谈图书馆管理系统
引言:校园图书馆自动化建设是国家 教育 信息化建设的一个重要组成部分。随着图书馆硬件设施的完善,对图书馆的管理水平和标准也越来越高。图书馆管理系统功能非常强大,系统操作简单灵活,易学易用,易于维护。适用于各高等院校的图书馆。
校园图书馆自动化建设是国家教育信息化建设的一个重要组成部分。随着图书馆硬件设施的完善,对图书馆的管理水平和标准也越来越高。传统手工管理对图书馆管理员而言,工作繁琐而艰巨,同时对读者借阅在时间和空间上也带来诸多不便,逐渐出现信息资源流通效率低、服务不够细致严密等问题。 如何才能更有效的发挥校园图书馆这个信息交换中心的应用效率。图书馆管理系统打破了传 统的图书管理模式,以系统性、实用性为原则,最大限度提高图书馆管理各个环节的自动化服务为目标 ,建立起了一套系统高效的数字自动化管理服务流程,极大的减轻了图书管理的工作量,有效的提高了 图书馆服务质量和效率。分层组件技术的应用,使每个功能和业务模块实现网络集成化的分配管理,顺应信息时代的发展,能够满足较大型用户的需要。
一、高校图书馆管理系统设计思路:
图书馆管理系统主要针对图书馆传统手工管理工作流程中图书编目、图书检索、图书流通和读者管理这四个主 要组成环节进行全面分析,从图书采验到馆后,图书馆管理员将图书详细信息(包括:ISBN号、正题名、 作者、出版社、价格等),编目录入到计算机,为减轻管理员传统繁复的手工分配工作,系统自动建立 书籍管理的财产号、唯一标识每本图书的识别条码和图书检索目录。对于图书检索,读者可以通过与图 书馆联网的 其它 任何一台计算机登陆访问馆藏目录,选择多种方式进行图书检索。
针对热门图书流通率 高以及一般中小学校学生课余支配时间有限的实际情况,提供网上馆际图书预借功能,管理员按预借表 目顺序提前为读者的借阅资料作合理调拨和准备,从而为学生提供更广的借阅时间和空间。为更加有效 的配合图书的流通管理工作,读者也可以通过这个查询终端对个人借阅时间、预借情况、图书催还、罚 款记录等借阅情况进行查看了解。同时建立一个详细的读者信息管理库,按读者不同类别设置不同服务 标准进行区分管理。系统综合每个环节提供关联统计,帮助管理员全面准确的了解这个庞大的信息资源 库的流通情况以及馆藏动态。科学准确的条码识别技术贯穿服务于整个图书信息录入、流通和读者借阅工作,减少了手工误差,提高了图书馆的服务质量和效率。
二、图书馆管理系统特点:
1.丰富的报表
图书馆管理系统提供丰富的报表(供有几十种报表),不仅可以打印出来,还可以导出到各种格式文件的文件,可以直接发布到校园网络上或提供给其他部门使用。可以说目前图书馆所需要的各种报表,系统都能提供。特别是根据学校用户要求开发的一些功能很受学校图书馆用户的欢迎,例如毕业班催还清单报表、图书借阅或读者排行榜、按工具书与教参等介质类型进行分类统计的报表、按藏书地点进行分类统计等一些非常实用的个性化报表。并且可以将报表导出到指定格式的文件中,以便进行数据交换或直接连接到校园网上。
2.图书远程编目
图书馆管理系统提供Z39.50的客户端,并与编目系统完整的结合,不仅实现本地书目总库的查重,本地共享编目库的套录,也实现与INTERNET上其他编目中心数据库的连接,达到免费套录异地数据库中的编目数据,大大提高了图书编目速度,又节约了成本。
3.系统方便实用
图书馆管理系统是专为高等院校图书馆特殊群体量身设计的,系统界面友好,操作非常方便,只要培训半天,用户即能流畅自如地操作。实践证明,不管学校图书馆是否有专业的管理人员,都能够管理出一个专业的图书馆。
图书编目建库是图书馆中一个最重要,也是最花时间的工作,系统应该在考虑到编目数据的共享、远程数据套录的同时,在编目的操作中也考虑的非常细致,比如在编目时,在需要输入汉字的地方,系统将自动出现本用户习惯使用的汉字输入法,而减少编目人员的操作步骤,提高建库速度。
4.打印图书标签方便
图书标签的打印和粘贴是一件非常麻烦和费事的工作,图书馆管理系统的标签打印非常方便,不仅提供标签的批量打印、标签补打,并且提供按各种条件、顺序来选择打印,根据自身的标签规格来自定义打印方式。方便的打印标签方式为贴图书标签提供了便捷。
5.图书入库方便快捷
图书馆管理系统的图书入库非常方便快捷,在录入图书条形码时不指定其地点,加快图书编目的录入速度,在真正入库处才指定图书的入库地点,这也避免图书入库错误,导致图书所在库并不是先前指定的库,引起图书书库的混乱。系统提供了批量入库和单本图书的入库,可以快速的将每本图书入到指定的书库中。而清楚的图书入库清单报表,也提供管理员一个清楚的依据。
6.图书借还非常方便
图书馆管理系统的图书借还非常方便,借书、还书、续借、罚款等都在一个界面中,图书的借还根本不用考虑什么,只要使用条形码阅读器扫描图书条形码或借书证条形码即可,系统将自动进行“借”与“还”,不需要用户选择。对逾期还书的处理一般图书软件只提供罚款的处理方式。
7.借书证信息管理灵活方便
读者借书证的管理中,图书馆管理系统的对读者管理非常灵活,按入学年度分成不同的读者类型,这在读者批量注销(如毕业)时将操作非常方便快速。读者信息中也可以加入读者的相片,在借还图书时可以方便的检查借书的读者是否是其本人,防止借书证丢失后的损失。
8.数据完整、一致性好
图书馆管理系统软件均采用MsSql数据库,并在数据库表级对数据的完整性和一致性进行约束,保证数据库中数据的正确性和安全性。方便的数据库备份,防止运行环境的突然崩溃(如硬盘损坏、系统遭病毒破坏)而不至于影响数据库中的数据。
随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点。图书馆管理系统功能非常强大,系统操作简单灵活,易学易用,易于维护,适用于各高等院校的图书馆。它的系统化,规范化和自动化,能最大程度提高操作人员的办公效率。
试谈中小型图书馆的图书管理系统
摘要:随着计算机技术的不断发展,计算机已经深入到社会生活的各个角落。为了方便管理人员对图书馆书籍、读者资料、借还书等进行高效的管理,在工作人员具备一定的计算机操作能力的前提下,采用图书馆管理系统软件可以提高其管理效率。
关键词:图书馆管理;系统软件;管理效率
随着近年来信息技术及计算机 网络技术 的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作―图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于WEB的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。
一、问题定义及系统背景
本系统是为了方便用户对图书的管理开发的。要求系统界面友好,使用简单,提供对图书信息、读者信息和图书流通情况的编辑、查询、统计报表等全面的数据管理功能,同时使用户能方便的进行图书的出借、返还等操作,并提供预约、续借,馆际互借等功能。此外系统还具有一定的安全性和可维护性。
三、系统功能分析
系统协助图书馆管理员实现各种日常事务的管理。系统维护数据库,保存图书和读者的资料以及图书流通情况的资料,便于管理员管理图书和读者的有关数据,还可根据需要随时进行数据的查询和统计并按所需格式和方式输出。利用这些数据,系统可协助管理员进行读者的图书出借、返还、预约和续借等操作,读者身份认证和借书权限认证等都可由系统承担,大大减轻了管理员的工作量。此外,对于系统本身的维护,系统具备一定的安全机制和信息备份机制,对用户分级管理,设置用户权限,保证 系统安全 性;提供数据库文件的备份功能,按用户要求备份,防止意外数据丢失影响系统工作。通过需求分析,系统应具备以下功能,具体描述如下:
(1)图书信息维护:主要完成图书馆新进图书的编号、登记、入馆等操作。
(2)读者信息维护:主要是完成读者信息的添加、修改和删除等操作,只有是系统中的合法读者才有资格进行图书的借阅活动。
(3)借书/还书处理:主要完成读者的借书和还书活动,记录读者借还书情况并及时反映图书的在库情况。
(4)读者借阅记录:让每位读者能及时了解自己的借书情况,包括曾经借阅记录以及未还书记录。
(5)图书书目检索:读者能够根据不同的信息(如书名、作者、关键词等)对图书馆的存书情况进行查找,以便快速的找到自己希望的图书。
(6)图书超期通知:为图书管理员提供一个统计信息,能够统计出到目前为止逾期未归还的图书及相应的读者信息。
三、可行性研究
在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡,账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的介于这可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预订,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。
1.系统设计目标
(1)对图书资源进行分类,发布到网上,以供读者阅读或查询。
(2)为读者提供图书检索功能,读者能方便地阅览电子图书,建立书签。
(3)图书馆管理员能对读者的用户名、密码及权限进行管理。
(4)图书馆管理员能够通过自己的用户名密码进行登录、查询、修改图书馆藏书信息并能对阅览者的信息进行浏览、添加、删除、修改操作。
(5)该系统还应能对借阅者的借书信息数据进行记录并计算自动计算借阅时间;根据软件设置,系统自动选择对于超时归还者的惩罚办法。
2.分析系统建设在各方面的可行性
系统的可行性研究可从技术、经济、操作、组织、社会5个方面进行。
(1)技术可行性由于网络的普遍应用,使的期刊管理业务非常的方便,无需再进行网络的建设。ASP.NET对数据库的支持好、开发难易度容易、使用简单的Windows平台、对组件的支持,采用编译之后执行的方式。SQLServer数据库和ASP.NET技术的有机结合,可以开发出实用、简便、高效的基于网络的期刊管理系统。因此技术上是可行的。
(2)经济可行性一方面,系统的开发不需要额外增加设备购置费、软件开发费、管理和维护费用。另一方面,系统的开发可以较好地解决图书馆因日常事务繁杂而造成的处理效率低,出错率偏高的局面,并可以及时了解各项日常事务的进展情况,为及时调整库存资料提供可靠的数据支持,从而明确工作目标,同时还可以减少人工劳动、提高工作效率、增加书本流通量。
(3)操作可行性计算机以强大的信息处理能力作为人类脑力劳动的有利助手登上历史舞台后,已渗透到社会生活的各个领域,使现代社会组织、特别是企业,学校的信息处理能力适应现代化管理的要求,且系统逐步从单项事务信息处理系统迅速向综合服务(决策支持系统)的管理信息系统发展。本系统使用界面良好,易于操作。图书馆拥有一批较高素质的员工,只需了解相关知识,就可熟练操作本系统了。
(4)组织可行性制定合理的项目实施进度计划、设计合理的组织机构、选择 经验 丰富的管理人员、建立良好的协作关系、制定合适的培训计划等,保证项目顺利执行。此系统的开发只需要编程技术纯熟的学生,配合熟悉的系统开发过程及熟悉图书管理流程的人即可完成,在学校符合这样要求的人挺多,可组成系统开发团队,所以在组织上市可行的。
(5)社会可行性此系统主要针对图书馆,而且是给图书管理员减负,促进图书馆图书有序、安全、高效管理的系统,对社会没有什么不良的影响。综上可得,图书管理系统的开发在技术、经济、操作、社会上都是可行的。
结语:
综上所述,开发中小型图书馆的图书管理软件已经很有必要,并且实现研究服务于实践的原则。从而在图书馆对新旧书的反应;对书籍借阅的管理能力;对读者和图书馆工作人员的管理能力;对图书馆管理人员软件操作的适应时间和操作感觉这些方面都将大大的提高的同时,获得显著的社会效益。
试谈图书管理系统安全稳定性
SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。Mysql可以说是目前最为流行的开源数据库管理系统软件,是一个真正的多用户、多线程SQL数据库服务器。Mysql开放源码,快捷灵活、稳定和容易使用等优点决定了其在中小型管理系统应用的优势。本文以基于Mysql网络数据库的图书管理系统为例,从安全稳定性要求和采取的安全策略等方面进行分析研究。
1Mysql在信息管理系统的应用与优势
1.1Mysql的基本特性与应用
Mysql与其他大型数据库Oracle、DB2、SQLServer等相比,有自身的不足之处,但是没有影响到Mysql在信息管理系统的应用。在个人或者是中小型的企业,Mysql发挥了自身的优势与作用。Mysql开放源码,具有快捷灵活、稳定和容易使用等优点,并有效的提供了PHP、C,C++,JAVA和HTML等主流前端开发软件的API接口。支持多种 操作系统 包括Windows、Linux、Solaris、MasOS等。目前,搭建动态网站或者服务器的开源软件组合有典型的网络架构LAMP,极大地方便了开发者。Mysql应用非常广泛,Google、facebook、等使用Mysql作为网络数据库。
1.2Mysql应用于图书管理系统的优势
Mysql应用于图书管理系统的优势主要分为三个方面,一是免费开源优势,如果再使用linux操作系统,可以减少购买操作系统和数据库的开销。二是多种平台支持的优势,Mysql可以与多个平台进行有效的连接,实现信息资源的共享。三是中小型数据库灵活稳定的优势,在设计Mysql程序的时候,加入了SQL中没有的一些补充条件,更加的适用于在中小型数据库中使用。图书管理系统通常要保存用户信息、图书信息和借阅信息,以及建立相关的书籍查询等,数据仓库并不是很庞大,因此,使用Mysql来管理数据非常合适。
2基于Mysql的图书管理系统安全稳定性分析
高校图书管理系统是基于互联网的网络数据库,通常采用B/S的体系结构,因此,在浏览器层、Web服务器层、数据库服务器层都会存在安全性要求,以及在操作系统、网络技术等方面的安全问题。只有控制好图书管理系统的安全问题,才能保证信息资源的有效共享。基于网络数据库的图书管理系统的安全稳定性具有以下几个特点:(1)较高的稳定性,包括操作系统的稳定性和数据库系统的稳定性,要保持Mysql数据库的正常运行轨迹。(2)数据的保密性能,对客户信息、访问浏览量、客户端等进行有效的保密。(3)运行的速度很快,包括浏览器端、数据库服务器端的访问速度,以保证数据信息在查找、修改等方面的快速反应。(4)数据的备份与数据的恢复功能。数据库服务器中,包括图书信息、借阅图书记录、客户账号等在内的相关数据的安全问题,是保证图书管理系统正常运转的重要因素。要采取严格的防范 措施 ,同时,当发生数据故障的时候,要在最短的时间内恢复数据与系统。
3基于Mysql的图书管理系统安全稳定性策略
图书管理系统通常采用三层B/S结构模式,即用户层、Wed服务器层和数据库层。图书管理系统要注意提高数据库安全、操作系统安全和网络安全技术等方面的安全策略。
3.1优化数据库设计
比如,在遵循关系模式规范化的基础上,优化表设计适当增加中间表或增加冗余字段以减少连接查询所花的时间,优化JOIN操作和子查询尽量使用全连接避免产生中间表,尽量避免LIKE关键字和通配符进行查询。另外,还可以修改my.ini文件,对相关参数如sort_buffer_size、read_buffer_size、query_cache_size、max_connections等,设置合适的缓冲区大小和MySQL允许的最大连接进程数,以优化服务器提高系统性能,提高保证图书信息资源查询效率。
3.2数据容灾与备份机制
要定期地进行数据备份,保护图书书目数据、流通数据、客户信息等。定期的进行数据库的重组工作,增强数据库的使用性能。用好MYSQL的容灾与备份机制,比如:建立主从数据库集群,采用MySQL复制;制定数据库备份/恢复计划;启动数据库服务器的二进制变更日志;定期检查数据表;定期对备份文件进行备份;把MySQL的数据目录和备份文件分别放到两个不同的驱动器中,等等。
3.3帐户安全策略
可以从账户安全检查、系统内部安全措施、哈希加密等方面着手进行。比如,检查用户表mysql.user是否有匿名空账号(user=‘’),如有应将其删除。使用哈希加密帐户密码。加强客户的登录认证,尤其是服务器主机的登录认证。在主数据库创建从数据库操作所用的用户,并指定使用SLL认证等等。
3.4网络安全和操作系统安全策略
在网络安全策略方面,利用NAT技术,有效的防止发生来自网络外部的攻击现象,将局域网络内部的计算机系统进行隐蔽。正确设置计算机操作系统,确保客户使用真实身份,登录具有合法性。此外,还可以设置系统的实时监控,优化网络防火墙、文件加密以及杀毒软件技术的升级,等等。
4结语
综上所述,要确保基于Mysql在图书馆管理系统的安全稳定性能,要考虑很多种因素的影响,在数据库设计、数据库服务器、数据容灾与备份、帐户安全,以及计算机网络、操作系统等方面进行优化配置。图书管理系统的安全与稳定性能保证了信息数据的安全、稳定性与高效,保证了客户在不同的时间、地点、平台中有效的使用图书馆的资源信息共享。
参考文献:
[1]晋征.论基于网络数据库的图书馆管理系统安全性研究与实现[J].网络安全技术与应用,2015(3):27-29.
[2]阳学军.基于网络和人工智能的图书馆信息管理系统研究[J].岳阳职业技术学院学报,2005(3):59-61.
[3]林爱鲜.基于神经网络的图书馆管理系统的构建研究[J].电脑与电信,2012(4):48-50.
[4]田华.图书馆分布式数据库安全技术研究[J].现代情报,2007(4):161-163
1 前言 4 1.1 目的 4 1.2 范围 4 1.3 有关本系统中的定义 4 2 资料引用 4 3 设计思路 4 3.1 数据层设计 5 user_book表的触发器 5 用户续借图书的存储过程 6 到期催还表的视图 7 3.2 数据链接层设计 8 UserBook Entity Bean设计 9 UserConsumer Entity Bean设计 10 UserLogBook Entity Bean设计 11 3.3 数据逻辑层设计 12 TheBook Session Bean设计 13 TheUser Session Bean设计 14 TheLog Session Bean设计 15 3.4 网络应用层设计 15 CheckValue bean 16 EnCode bean 16 JDBCBean bean 16 Rank bean 16 SetUp bean 16 SplitPage bean 17 UserLogin bean 17 SearchBook bean 17 SearchDeadline bean 17 ValidateIMG servlet 17 GetDelete servlet servlet 17 GetBookSubmit servlet 18 GetUserSubmit servlet 18 GetRenewBook servlet 18 GetBorrowBook servlet 18 GetReturnBook servlet 18 4 程序架构 18 4.1 程序组织结构 18 4.2 功能权限划分 20 4.3 WEB程序/页面设计 21 4.4 本系统实现的功能 22 5 任务分工 22 1 前言 1.1 目的 本文档详细描述了图书管理系统的设计,主要是为开发人员提供,使其对本项目的构建和维护有深入的了解。 1.2 范围 本文档的描述只针对图书管理系统的1.0版本。 1.3 有关本系统中的定义 以下是本说明书中用到的专门术语的定义和外文首字母组词的原词组: 术语或缩写 定义与描述 booksManager 本系统的名称 Reader 系统权限:普通读者 BookAdmin 系统权限:图书管理员 UserAdmin 系统权限:用户管理员 SuperAdmin 系统权限:超级管理员(系统管理员) Undergraduate 系统用户角色:本科生 Graduate 系统用户角色:研究生 Teacher 系统用户角色:教师 2 资料引用 清华大学《应用软件平台与核心技术》讲义 顾明 清华大学《应用软件平台与核心技术》助教文档 张伟业、魏岚、陈勇、林彩荣 《精通EJB(第二版)》 《J2EE应用与BEA Web Logic Server》,刑国庆等译,电子工业出版社 2002.4 《设计模式——可复用面向对象软件的基础》,Erich Gamma等,机械工业出版社 3 设计思路 本系统严格按照4层结构设计,分为数据层(SQL server),数据链接层(entity bean),数据逻辑层(session bean),网络应用层(java bean, java servlet, java serverpage)。 四层之间完全独立,可以部署在四台服务器上运行,体现了分布式应用的思想。 数据层的功能严格来说是实现基本的数据存储(逻辑处理功能应该全部交给CMP管理),但因为学习原因,在数据库中也用到了一些逻辑处理,如使用了存储过程+系统级临时表处理读者续借图书的功能、使用触发器防止未还书的用户和未归还的图书被注销以及使用视图检测借书记录实现到期催还功能。 数据链接层实现了和数据库的连接,作用在于屏蔽数据库和平台之间的差异,做到底层无关性。本层利用了模糊查找、多表映射、Relationship等技术,通过find,select方法数据的查找功能,抛出聚集对象或远程接口对象给下一层。 数据逻辑层实现了对数据的逻辑处理,例如将远程接口对象转化为值对象、将聚集对象转化为值对象向量、利用日期类完成查找两个特定日期之间的记录等相对复杂的计算。 网络应用层完成页面跳转和页面显示等应用功能,还有一些附加功能如:图片验证,登录验证,等级控制,代码过滤,分页控制,输入值检测、借书日志打印、系统运行日志记录以及系统设置等。(使用了JDBC实现存储过程和模糊查找图书的功能) 3.1 数据层设计 数据库表 表名 功能描述 user_consumer 记录了用户的所有信息 user_book 记录了图书的所有信息 user_logBook 记录了用户使用本系统的信息,保留了所有的借书记录,可作为系统日志和报表资料 user_book表的触发器 用到的触发器之一,作用:如果要注销的图书被外借没有归还,则回滚此删除操作。 CREATE TRIGGER bookhavelog ON dbo.user_book FOR DELETE AS declare @bookISBN varchar(50) select @bookISBN=book_ISBN from deleted if exists(select * from user_logBook where logb_book_ISBN=@bookISBN and logb_backdate is null) begin rollback return end 用户续借图书的存储过程 利用存储过程实现用户续借图书的逻辑操作,根据用户的当前信息判断其是否有续借的权限,并把处理结果输出到临时表中去。 CREATE PROCEDURE user_renew_book @xxxparm int AS CREATE TABLE ##temp(statement varchar(50)) DECLARE @username varchar(50) SET @username=(select logb_cons_username from user_logBook where ID=@xxxparm) IF @username is null BEGIN INSERT INTO ##temp VALUES ('The ID is not EXIST') RETURN END DECLARE @timelimit int SET @timelimit=(select logb_timelimit from user_logBook where ID=@xxxparm) DECLARE @renewday int SET @renewday=(select cons_maxday from user_consumer where cons_username=@username) DECLARE @maxrenew int SET @maxrenew=(select cons_maxrenew from user_consumer where cons_username=@username) IF (@renewday*@maxrenew)>=@timelimit BEGIN update user_logBook set logb_timelimit=logb_timelimit+@renewday where ID=@xxxparm --update user_consumer set cons_maxrenews=cons_maxrenews-1 where cons_username=@username INSERT INTO ##temp VALUES ('renew successful') RETURN END ELSE BEGIN INSERT INTO ##temp VALUES ('You are not allowed to renew the book') RETURN END GO 到期催还表的视图 利用DATEDIFF,DATEADD,CAST,GETDATE等函数从借书记录表中计算出到期的记录,然后根据此记录找出相应的读者信息,在网页上以email形式催还。 CREATE VIEW dbo.deadline AS SELECT TOP 100 PERCENT dbo.user_logBook.logb_cons_username, dbo.user_logBook.logb_outdate, DATEADD([day], dbo.user_logBook.logb_timelimit, CAST(dbo.user_logBook.logb_outdate AS datetime)) AS deadline_date, GETDATE() AS now_date, dbo.user_consumer.cons_name, dbo.user_consumer.cons_kind, dbo.user_consumer.cons_rank, dbo.user_consumer.cons_email, dbo.user_consumer.cons_maxrenew, dbo.user_consumer.cons_maxbook, dbo.user_logBook.logb_book_ISBN, dbo.user_book.book_name, dbo.user_book.book_kind, dbo.user_book.book_storage, dbo.user_book.book_rank, dbo.user_logBook.logb_timelimit FROM dbo.user_logBook INNER JOIN dbo.user_consumer ON dbo.user_logBook.logb_cons_username = dbo.user_consumer.cons_username INNER JOIN dbo.user_book ON dbo.user_logBook.logb_book_ISBN = dbo.user_book.book_ISBN WHERE (DATEDIFF([day], DATEADD([day], dbo.user_logBook.logb_timelimit, CAST(dbo.user_logBook.logb_outdate AS datetime)), GETDATE()) >= 0) AND (dbo.user_logBook.logb_backdate IS NULL) ORDER BY dbo.user_logBook.logb_cons_username DESC 3.2 数据链接层设计 entity bean UserBook Entity Bean设计 userbook remotehome接口 方法 描述 findAllBook 得到所有的图书信息 findByISBN 通过图书的书号得到图书的信息 findSearcher 利用关键字模糊查找图书信息 selectUserByBookISBN (userbook remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserBook as p where p.bookName like concat(concat('%',?1),'%') or p.bookAuthor like ?1 or p.bookKind like ?1 or p.bookPublish like ?1 or p.bookAbstract like ?1 or p.bookISBN like concat(concat('%',?1),'%') or p.bookRemark like ?1 UserConsumer Entity Bean设计 UserConsumer remotehome接口 方法 描述 findAllUser 查找所有的用户信息 findByUsername 通过用户名查找用户信息 findSearcher 利用关键字模糊查找用户信息 selectBookByUsername (userconsumer remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserConsumer as p where p.consUsername like concat(concat('%',?1),'%') or p.consSerial like ?1 or p.consName like concat(concat('%',?1),'%') or p.consRemark like ?1 or p.consEmail like ?1 UserLogBook Entity Bean设计 UserLogBook remotehome接口 方法 描述 findallbybookISBN 查找此书所有的借阅记录 findbybookISBN 查找此书当前的借出记录 findallbyusername 查找此用户所有的借阅记录 findbyusername 查找此用户当前的借出书记录 findbacklog 得到所有已经归还图书的借书记录 findoutlog 得到所有尚未归还图书的借书记录 findbyID 通过记录流水号查找借书记录 findlogbyday 查找某一日期的借书记录 (模糊匹配,例如提交“2004-5”可得到最终记录时间——借阅或归还在2004年5月份的所有借书记录) findallog 得到所有的借书记录 FindLogByDay通过模糊匹配得到一组最终记录时间的代码: select object(p) from UserLogBook as p where ( p.logbBackdate is null and p.logbOutdate like concat(concat('%',?1),'%') ) or ( p.logbBackdate is not null and p.logbBackdate like concat(concat('%',?1),'%') ) 3.3 数据逻辑层设计 session bean TheBook Session Bean设计 TheBook bean 实现图书的增删改查以及模糊搜索、通过书查读者等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheUser Session Bean设计 TheUser bean 实现用户(读者)的增删改查以及模糊搜索、通过读者查书等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheLog Session Bean设计 TheLog bean 主要实现对日志(借书记录)的各项操作,提供多种获得日志的方法(按读者、按图书、按日期、按借还状态等),方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量,另外还有如下方法: 方法 功能 public boolean userBorrowBook(String username, String bookISBN) 以一个事务封装读者借书的所有逻辑操作,借书成功返回真值,无法借书返回假值,调用enCode bean对中文进行转码 public boolean userReturnBook(String logbid) 以一个事务封装读者还书的所有逻辑操作,即实现使一笔借书记录销账的功能,调用enCode bean对中文进行转码 public Vector showLogBetweenDays(String dayBegin, String dayEnd) 返回两个日期之间的所有日志,主要利用Calendar类实现 3.4 网络应用层设计 本层本着面向对象思想的封装性、数据模糊性、可重用性等原则设计。 本着系统运行错误在系统中打印(System.out.println)、用户输入和误操作错误导向友好的错误处理页并给出友好的提示的错误处理原则。 每次对会话bean的调用写入系统运行日志文件,默认路径是C:\\booksManagerLog.dat。 CheckValue bean 封装多个静态方法。 可以用于检测某表中某个字段是否已经存在某个值(可用于检测重名用户、重号图书)、检测用户名合法性、检测密码合法性、检测年龄合法性、检测电子邮件合法性、检测数字合法性、检测日期合法性等。 EnCode bean 封装编码转码工作: html显示转码,例如:将<转为<,将>转为&rt;,将数据库中的换行转为html中的换行等等,这样可以屏蔽用户提交文本中的可执行代码。 可重载的中文转码。 密码的加密和解密编码。 JDBCBean bean 封装所有的数据库操作。包括一个带结果集返回的SQL执行方法和一个不带结果集返回的SQL执行方法。 Rank bean 封装4种权限(普通读者、用户管理员、图书管理员、系统管理员)的页面访问,相当于页面加锁功能。 SetUp bean public static String title="SuperLibrary";//系统名称 public static String dbS="booksManagerDS";//数据库的JNDI名 public static String errorPage="dealError.jsp?theError=";//友好的错误处理页,用get方法传递出错原因 public static String homePage="default.jsp";//默认首页 //权限------------------------------------------------------------------------- public static String Reader="Reader";//读者 public static String UserAdmin="UserAdmin";//用户管理员 public static String BookAdmin="BookAdmin";//图书管理员 public static String SuperAdmin="SuperAdmin";//系统管理员 //等级------------------------------------------------------------------------- public static String Undergraduate="Undergraduate";//本科生 public static int UndergraduateRenew=1;//本科生可续借的次数 public static int UndergraduateMaxday=30;//本科生一次可借的天数 public static String Graduate="Graduate";//研究生 public static int GraduateRenew=2;//研究生可续借的次数 public static int GraduateMaxday=45;//研究生一次可借的天数 public static String Teacher="Teacher";//教师 public static int TeacherRenew=3;//教师可续借的次数 public static int TeacherMaxday=60;//教师一次可借的天数 //---------------------------------------------------------------------------- public static int rsPerPage=5;//每页显示记录的数量 public static int minBooks=4;//系统默认的最小借书数 SplitPage bean 将数据记录分页的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,重用时实际只需要传递一个记录集数量的为参数即可,可重用。一般作为session级java bean在页面中被调用,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 UserLogin bean 将用户登录的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,包括对用户各种登录情况的处理,可重用。 SearchBook bean 利用JDBC实现模糊查找和按指定类别精确查找图书的功能。 SearchDeadline bean 利用JDBC调用视图实现到期图书的催还功能。 ValidateIMG servlet 动态生成含有随机验证码的图片,在生成图片的同时将验证码写入session中,与用户的登录输入比较。可有效的防止机器人登录。 GetDelete servlet servlet 处理图书、用户、日志的注销操作,根据返回值进行相应页面的跳转。 GetBookSubmit servlet 处理图书的入库和图书信息的修改,根据返回值进行相应页面的跳转。 GetUserSubmit servlet 处理用户的注册和用户信息的修改,根据返回值进行相应页面的跳转。 GetRenewBook servlet 处理用户续借图书的请求(JDBC调用存储过程实现),从系统临时表中读取状态值,根据状态值进行相应页面的跳转。 GetBorrowBook servlet 处理用户的借书请求,将用户借书限额已满、库存为零等错误导向友好的错误页,如果借书成功则跳转到图书信息页面,并给与相应的提示。 GetReturnBook servlet 处理用户的还书请求,如果还书成功则跳转到用户的借书记录页面,并给与相应的提示。 4 程序架构 4.1 程序组织结构 说明:图书搜索和用户登录看作系统外部功能,通过JDBC直接调用数据库,其中用户登录模块封装在一个java bean中,可重用。另外,用户续借图书是通过存储过程实现,从而绕过了使用CMP技术管理事务的实体bean。 本系统其余程序的组织结构严格按照下图实现: 程序组织结构图 4.2 功能权限划分 站点页面地图 权限名称 系统定义字符 权限 可访问页面 普通读者 Reader 查看自己的信息(还书、续借); 修改自己的信息; 查看图书(借书); userModify userView booklist 图书管理员 BookAdmin 拥有普通读者的权限; 图书的增删改查; 到期催还; userModify userView booklist bookAdder bookModify deadline 用户管理员 UserAdmin 拥有普通读者的权限; 用户的增删改查; userModify userView booklist userRegister userModify userList 系统管理员 SuperAdmin 拥有图书管理员和用户管理员的权限; 查看系统日志; 删除系统日志; 系统设置; 包括setupSYS.jsp(系统设置,利用application级java bean控制整个应用程序)在内的所有页面 4.3 WEB程序/页面设计 利用代码关闭客户端的输入法,实现用户名、密码不能出现中文的问题。 利用onfocus=this.select() onmouseover=this.focus()代码使文本框自动吸附获得焦点,方便用户输入。 利用WMODE="transparent"参数使flash的背景透明,更好的融入网页。 在每页中,利用代码: 嵌入上下导航条,使网站导航明确,方便用户浏览。 在网页头部加入代码: 使客户端不缓存网页,保证了客户每次浏览该页都从服务器获得最新的版本,以求正确显示。 提供智能搜索(获得尽可能多的匹配)和精确搜索(获得尽可能精确的匹配)图书,服务器端编程都采用模糊查找的方式。 在客户端用javascript对表单提交进行第一次验码,通过后提交到服务器端,再进行第二次验码,验码包括:用户名是否重复、年龄是不是合适的数字,两次密码输入的是否一致、电子邮件是否合法、密码是否太短、用户名是否太短、用户名密码是否为空等等。 利用随机生成JPG图片验证码的方法,防止机器人登录。 在页面中使用session级java bean实现分页,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 在页面中使用application级java bean实现安全的系统设置,当服务器启动后,即可对系统运行参数进行应用程序级的设置,只要服务器不关闭,此设置始终有效且作用于所有用户,如果设置不慎造成系统错误或想恢复系统默认设置,则只需重新启动服务器即可。 在对会话bean的调用包ejbClient中,创建系统运行日志,通过包中的writeF类写入web服务器的C:\\booksManagerLog.dat中,可做查询用。 4.4 本系统实现的功能 确定图书的基本信息,有书名、作者、出版日期、当前借阅状态等属性 系统的使用者包括读者、图书管理员、用户管理员、系统管理员四种 读者可以查询图书;图书管理员可以完成图书管理、借阅管理;读者管理员可以完成读者管理的功能;系统管理员可以使用系统的所有功能 图书管理:新书登记,图书查询,图书注销; 借阅管理:借书,还书,查询到期读者 读者管理:增加读者、删除读者、查询读者、读者类别管理(设置研究生,本科生,教师的可借册数,可借天数,可续借次数等) 系统管理:系统管理员使用,包括用户权限管理(增加用户,删除用户,密码修改等),系统借书日志,系统运行日志,系统设置等功能 页面输入有验码,密码存取有加密 图书到期催还 体现分层设计思想,使用MVC架构 实现了多个Beans,Bean之间实现了对应的关系 使用了EJB QL,事务控制等 使用了jsp->sessionBean->entityBean->数据库模式 数据库使用了触发器和存储过程等一些高级技术
112 浏览 2 回答
336 浏览 4 回答
331 浏览 3 回答
232 浏览 6 回答
126 浏览 2 回答
250 浏览 2 回答
289 浏览 2 回答
310 浏览 2 回答
206 浏览 2 回答
123 浏览 2 回答
290 浏览 2 回答
272 浏览 3 回答
108 浏览 4 回答
215 浏览 2 回答
97 浏览 2 回答