数字图书馆系统毕业论文_第1页
数字图书馆系统毕业论文_第2页
数字图书馆系统毕业论文_第3页
数字图书馆系统毕业论文_第4页
数字图书馆系统毕业论文_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大庆石油学院本科生毕业设计(论文)I摘要本文论述了一个数字图书馆系统的开发过程,包括系统分析、系统设计、系统实现等方面。该系统基本按照J2EE的设计标准并结合HIBERNATE、SPRING、STRUTS三种框架进行架构,使用JAVA语言、ECLIPSE开发工具、TOMCAT服务器、MYSQL数据库进行系统的代码实现。系统基本上可以满足用户的基本需求,使用户可以很好的在本网站上查找和借阅图书。本系统网站主要包括五大模块,分别是用户中心模块、图书浏览与查询模块、借阅图书模块、归还图书模块和出版社模块。用户中心模块主要是用于在本系统网站注册了的用户的资料的管理,用户登陆后可以进入该模块去查看或修改自己的信息,以及对登录密码进行修改。对于图书浏览与查询模块,网站没有对访问者进行限制,未注册的用户也可以进入该模块,去浏览和查看本系统的图书,且该模块还提供了快速查询和高级查询的功能,以方便用户快速的查找到自己想要的图书。关键词J2EE;MYSQL;TOMCAT;ECLIPSE大庆石油学院本科生毕业设计(论文)IABSTRACTTHISARTICLELABORATEDANNUMBERLIBRARYSTEMPERFORMANCEHISTORY,INCLUDINGASPECTSANDSOONSYTEMANALYSI,SYTEMDESIGN,SYTEMREALIZATIONTHISYSTEMBASICALYANDUNIFIESHIBERNATE,SPRING,THESTRUTSTHREKINDOFFRAMESACORDINGTOTHEJ2EEDESIGNSTANDARDCARIESONTHECONSTRUCTION,USESTHEJAVALANGUAGE,THEECLIPSEDEVELOPMENTKIT,THETOMCATSERVER,THEMYSQLDATABASECARIESONTHESYTEMTHECODEREALIZATIONTHESYTEMBASICALYMASATISFYTHEUSERTHEBASICDEMAND,ENABLESTHEUSERTOBEPOSSIBLEVERYGOODINTHISWEBSITETHELOOKUPANDTHEMOVEBOOKTHISYSTEMMAINLYINCLUDESFIVEBIGMODULES,RESPECTIVELYISUSERCENTRMODULE,BOOKBROWSINGANDINQUIRYMODULE,BORROWBOOKMODULE,BACKBOOKMODULEANDPUBLISHINGCOMPANYMODULETHEUSERCENTRMODULEMAINLYISUSESINHASREGISTERDINTHISYSTEMWEBSITEUSERSMATERIALMANAGEMENT,AFTERTHEUSERDEBARKATIONMAYENTRTHISMODULETOEXAMINEORTOREVISEOWNINFORMATION,ASWELASCARIESONTHEREVISIONTOTHEDEBARKATIONPASWORDREGARDINGTHEBOOKBROWSINGANDTHEINQUIRYMODULE,THEWEBSITEHASNOTCARIEDONTHELIMTTOTHEVISITOR,THEREGISTRATIONUSERALSOHASNOTBEENPOSSIBLETOENTRTHISMODULE,GLANCESOVERANDEXAMINEDTHISWEBSITETHEBOOK,ALSOTHISMODULEHASALSOPROVIDEDTHEFASTINQUIRYANDTHEHIGHLEVELINQUIRYFUNCTION,BYFACILTAESTHEBOOKWHICHUSERFASTEARCHOWNWANTKEYKKKWORDSJ2EE;MYSQL;TOMCAT;ECLIPSE大庆石油学院本科生毕业设计(论文)I前言随着INTERNET的飞速发展,覆盖面的日益广泛,在近几年中,大量的软件开发活动已经从客户迁移到了服务器。以客户为中心的C/S模型(即客户执行复杂的程序来显示和格式化数据)被认为不再适合于这个网络日益普及的社会。首要的原因是部署将客户程序部署到大量的桌面,并且在应用程序发生改变时重新部署它们,是非常烦人的。取而代之的是,将应用程序重新设计为使用一个WEB浏览器作为“终端”。应用程序本身驻留在服务器上的B/S,它将数据格式化为适合用户浏览的WEB页面,并且处理用户填入WEB表单的响应。本论文基于J2EE的数字图书管理系统恰恰就是利用B/S(BROWSER/SERVER)结构,实现对图书馆图书的信息化管理,这种系统的优势在于系统简单、功能强大、扩展能力良好以及能够方便的跨地域操作等性能。而以往单机版的图书管理系统比手工的图书管理有很大的优势,但是它毕竟使不方便的。管理员录入图书信息的过程只能在图书馆里完成,学生续借及查询图书信息的过程也只能在图书馆里完成,很不方便。而要在自己家里办公,要在自己的电脑上随时了解图书馆的最新动态,那么就需要有一个基于WEB的图书管理系统。而本系统刚好符合这个要求。本系统中使用工具之一JSP具有很好的发展前景。JSP是基于强大的JAVA语言,具有良好的伸缩性,与JAVAENTERPRISEAPI企业级API紧密地集成在一起,在网络数据库应用开发领域具有得天独厚的优势,基于JAVA平台构建网络程序已经被越来越多的人认为是未来最有发展前途的技术。而SUN公司承诺通过与业界领袖的合作,保证JSP规范是开放的和可移植的。可以使用任何客户机和服务器平台,在任何地方编写和部署它们。从JSP这几年的发展来看,JSP已经获得了巨大的成功,它通过和HIBERNATE、STRUTS、SPRING等J2EE组件进行集成,可以编写除处理具有更大伸缩性、高负载的企业级应用。JSP技术在诸多方面加速了动态WEB页面的开发。JSP有如此大的发展,并不是因为JSP本身,而是因为JSP身后的JAVA技术体系。利用JSP技术可以很好的将JAVA所具有的强大特性加以应用,从而实现更为强大的WEB应用。因此可以说,JSP技术所代表的发展方向具有美好的未来。在本系统中使用的另一个重要工具就是MYSQL数据库。该系统实现了一般的用户管理系统所具有的添加、查询、修改、删除等基本功能。大庆石油学院本科生毕业设计(论文)IV目录第1章概述111题目的意义1第2章构建数字图书馆系统的理论基础321图书馆发展概述322JAVA概述423WEB系统的发展624J2EE的发展及问题的提出725ECLIPSE集成开发环境126MYSQL数据库1第3章图书管理系统需求分析1331功能需求1332开发环境需求13第4章图书管理系统总体设计概述1541系统特点1542构成功能模块1643系统架构17第5章图书管理系统应用程序详细设计及实现1951业务流程图1952MYSQL数据库设计2053系统前台模块实现26第6章数字图书馆系统测试3561测试目的3562测试环境搭建3563系统程序的安装和加载3664测试方案3665设计测试用例3666测试分析总结及说明3867系统性能分析38结论40参考文献42致谢43大庆石油学院本科生毕业设计(论文)6第1章概述近年来,随着WEB技术的迅猛发展和应用,以及面向对象技术、组件技术的日益发展和成熟,WEB应用需求日益增多,涉及的领域越来越广,WEB应用系统的复杂性也变得越来越高,WEB应用获得了极大的发展,并将逐渐成为下一代软件开发的主流。1系统开发的意义随着社会的发展,人们对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就必不可少了,本文介绍了在WINDOWSXP及JAVA、JSP、DREAMWEAVER、TOMCAT、MYSQLSERVER、ECLIPSEMYECLIPSE环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的入库登记到查询浏览,从借书证发放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错,由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书馆管理系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要大庆石油学院本科生毕业设计(论文)7进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这一问题,我认为有必要建立一个图书馆管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。大庆石油学院本科生毕业设计(论文)8第2章构建数字图书馆系统的理论基础21JAV概述1JAVA语言是简单的。JAVA语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用JAVA。JAVA丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,JAVA语言不使用指针,使得程序员不必为内存管理而担忧3。2JAVA语言是一个面向对象的。JAVA语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。总之,JAVA语言是一个纯的面向对象程序设计语言。(3)JAVA语言是分布式的。JAVA语言支持INTERNET应用的开发,在基本的JAVA应用编程接口中有一个网络应用编程接口(JAVANET),它提供了用于网络应用编程的类库,包括URL、URLCONNECTION、SOCKET、SERVERSOCKET等。(4)JAVA语言是健壮的。JAVA的强类型机制、异常处理、废料的自动收集等是JAVA程序健壮性的重要保证。(5)JAVA语言是安全的。JAVA通常被用在网络环境中,为此,JAVA提供了一个安全机制以防恶意代码的攻击。(6)JAVA语言是体系结构中立的。JAVA程序(后缀为JAVA的文件)在JAVA平台上被编译为体系结构中立的字节码格式(后缀为CLASS的文件),然后可以在实现这个JAVA平台的任何系统中运行。(7)JAVA语言是可移植的。这种可移植性来源于体系结构中立性,另外,JAVA还严格规定了各个基本数据类型的长度。(8)JAVA语言是解释型的。如前所述,JAVA程序在JAVA平台上被编译为字节码格式,然后可以在实现这个JAVA平台的任何系统中运行。(9)JAVA是高性能的。与那些解释型的高级脚本语言相比,JAVA的确是高性能的。事实上,JAVA的运行速度随着JITJUSTINTIME编译器技术的发展越来越接近于C。(10)JAVA语言是多线程的。在JAVA语言中,线程是一种特殊的对象,它必须由THREAD类或其子(孙)类来创建。通常有两种方法来创建线程其一,使用大庆石油学院本科生毕业设计(论文)9型构为THREADRUNNABLE的构造子将一个实现了RUNNABLE接口的对象包装成一个线程,其二,从THREAD类派生出子类并重写RUN方法,使用该子类创建的对象即为线程。值得注意的是THREAD类已经实现了RUNNABLE接口,因此,任何一个线程均有它的RUN方法,而RUN方法中包含了线程所要运行的代码。(11)JAVA语言是动态的。JAVA语言的设计目标之一是适应于动态变化的环境。JAVA程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。JAVA语言的优良特性使得JAVA应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。JAVA对对象技术的全面支持和JAVA平台内嵌的API能缩短应用系统的开发时间并降低成本。JAVA的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是JAVA企业应用编程接口(JAVAENTERPRISEAPIS)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。23J2E的发展及问题的提出JAVA语言作为工NTERNET时代备受关注的技术之一,在开发WEB应用中有重要的作用。“J2EE是SUN公司推出的多层分布式系统开发模型,提供了构件复用、一致性的安全模型和灵活的事物控制,并且基于J2EE的应用是真正平台无关的”。J2EE平台提供了一个基于组件的方法,来设计、开发、装配及部署企业应用程序。J2EE平台提供了多层的分布式的应用模型、组件再用、一致化的安全模型以及灵活的事务控制。不仅可以比以前更快的速度向市场推出创造性的客户解决方案,而且,乎台独立的、基于组件的NEE解决方案不会被束缚在任何一个厂商的产品和API上。J2EE规范定义了以下种类的组件(1)应用的客户组件APPLICATIONCLIENTCOMPONENTS(2)ENTERPRISEJAVABEANS组件ENTERPRISEJAVABEANSCOMPONENTS(3)SERVLETS及JAVASERVERPAGESJSP页面组件也被称作WEB组件SERVLETSANDJAVASERVERPAGESJSPPAGESCOMPONENTS(4)APPLETS其重要的一类组件E邓,“EJB是用于开发和部署多层结构的、分布式的、面向对象的JAVA应用系统的跨平台的构件体系结构”4。采用EJB可以使得开发商业应用系统变得、容易,应用系统可以在一个支持EJB的环境中开发,开发完之大庆石油学院本科生毕业设计(论文)10后部署在其它的环境中,随着需求的改变,应用系统可以不加修改地迁移到其它功能更强、更复杂的服务器上。采用EJB开发应用系统有很多优点,如1标准的JAVA技术便利应用系统可以在许多不同的服务器平台上运行2修改应用系统变得容易,对单个构件进行增加、修改、删除等操作不会对应用系统体系结构产生很大影响3应用系统经过划分之后,使得构件之间相互独立,又可以相互协作,提供给用户的是该用户所需要的构件4应用系统的开发变得容易,基本上是即插即用的方式5应用系统从本质上说是可伸缩的,可以运行在多线程、多处理机的环境中。但是EJB也存在着很多先天的缺陷。首先,EJB属于重量级组件,对WEB服务器要求较高,必须有专门的EJB服务器,用以提供EJB容器,支持EJB的运行其次,对服务器硬件要求较高,而且EJB定义了较为复杂的EJBAP工,如果使用不当,可能导致不恰当的应用系统设计,结果使得应用系统的总体性能下降。241研究现状基于EJB的上述缺陷,很多专家、研究机构试图开发出一些轻量级的、灵活的J2EE框架,来代替传统的使用EJB的J2EE架构。241WEB层框架WEB层主要是指WEB系统中用来和用户交互的部分。处于WEB系统的最顶端。APACHE。组织的STRUTS框架开始于2000年3月,是“采用JAVAERVLET/JAVASERVERPAGES技术,开发WEB应用程序的开放源码的框架”151采用STRUTS能开发出基于MVCMODELVIEWCONTROLLER设计模式的JAVAWEB前端应用。基于STRUTS框架的WEB应用程序具有结构清晰、易于移植、易于扩展的特点。但是STRUTS架构对MVC模式的实现并不彻底,而且它只是WEB层的架构,对于业务逻辑层和数据持久层就无能为力。通常人们使用STRUTSEJB的形式进行开发,但是这样的系统就不可避免EJB的缺陷。TURBINE框架也是“由APACHE组织提供的基于SERVLET技术的通用框架”它同样实现了MVC模式,但是该框架对JSP的支持方面做得不是太好,它主要提供对VELOCITY模版的支持。WEBWORK是由OPENSYMPHONY组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWEB框架”M,WEBWORK目前最新版本是21,现在的WEBWORK2X前身是RICKARDOBERG开发的WEBWORK,但现在WEBWORK已经被拆分成了XWORKL和WEBWORK2两个项目。XWORK简洁、灵活功能强大,它是一个标准的COMAND模式实现,并且完全从WEB层脱离出来。XWORK提供了很多核心功能前端拦截机INTERCEPTOR,运行时表单属性验证,类型转换,强大的表达式语言OGNL一THE大庆石油学院本科生毕业设计(论文)1OBJECTGRAPHNOTATIONLANGUAGE,IOCINVERSIONOFCONTROL倒置控制容器等。WEBWORK2建立在XWORK之上,处理HTTP的响应和请求。WEBWORK2使用SERVLETDISPATCHER将HTTP请求的变成ACTION业务层ACTION类,SESSION会话APPLICATION应用程序范围的映射,REQUEST请求参数映射。WEBWORK2支持多视图表示,视图部分可以使用JSP,VELOCITY,FREEMARKER,JASPERREPORTS,XML等。COCOON项目是STEFANOMAZZOCCHI于1999年1月创建的,并将其作为ASF之下的开放源代码项目。COCOON的目标是帮助分离内容格式、逻辑和对基于XML网站的管理功能。COCOON使用XML,EXTENSIBLESTYLESHEETLANGUAGETRANSFORMATIONSXSLT,以及SIMPLEAPIFORXMLSAX技术,以帮助创建、部署和维护XML服务器应用程序”,COCOON目前最新版本为20版,它支持大多数类型的数据源,包括RDBMSLDAP和文件系统。2412持久层框架“持久性框架是一组软件服务,将应用程序与其使用和操纵的数据源分离。持久性框架位于机构的数据源之上,隐藏访问这些数据源的数据访问API如JDBC,JDO或实体EJB。提供的服务应完全抽象和从这个数据源使用和操纵数据的物理细节。持久性框架中提供下列服务,让开发人员在持久性框架之上建立应用程序(1)提供分开数据持久逻辑与表示和业务逻辑的整洁机制;(2)不让框架上建立的应用程序了解数据所在的数据库平台;(3)将所有数据连接逻辑包装到数据访问对象中后,业务应用程序的开发人员不需要知道连接的数据库平台类型,连接数据库时所需的任何安全信息用户功与口令或数据库网址;(4)抽象数据库中存储数据的物理细节和数据库中数据实体之间存在的关系。建立在上述体系结构布局之上的应用程序不必直接对数据库发出SQL查询,不必知道数据的物理结构,而用数值对象访问数据库。简化开发过程,隐藏打开数据库连接、发出数据读取与操纵命令和事物管理的细节。荃于DEE的一种多层。系统通用框架的设计与应用对于JAVA有许多持久化对象的方式。常用的持久化方法有JDBC,EJB,JDO等。许多开发者用JDBC进行数据库程序的开发。此中方式很多情况下都使用DAO模式,采用SQL进行查询。虽然用此方式可以使应用程序代码与具体的数据库厂商和数据库位置无关,不过JDBC是低级别的数据库访问方式,JDBC并不支持面向对象的数据库表示。JDBC数据库表示完全围绕关系数据库模型。在大型应用程序中的DAO中书写这样的代码,维护量是非常大的。大庆石油学院本科生毕业设计(论文)12EJB通常是程序员的第二个选择,目的是更加规范的用持久对象对数据库访问。ENTITYEJB听起来就象银弹一样,因此它拥有了巨大的市场。然而,你必须去了解一个EJB容器,甚至花大价钱去购买。而且想要非常清楚的了解EJB规范也是非常费时的。在用EJB编码前,先要让专家理解API,然后需要了解每一个容器部署时所要关注的技术。此外,许多情况下商用容器的性能和支持也不是很好。JDO规范10提出可以使你将精力集中在设计JAVA对象模型,然后在企业应用软件架构的不同层面中存储传统的JAVA对象PLAINOLDJAVAOBJECTS,简称PONS,采用JDOQL语言进行SQL操作”1101。一些公司包括SUN企图根据JDO规范进行设计并实现JDO产品,然而他们都不能很好的进行实现。并且性能优化上比较差。由于常用的这些方法存在着这些缺陷,其它的持久化方法的出现也就成为必然。HIBERNATE对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序实用,也可以在SERV1ET/JSP的WEB应用中使用,它使你可以用JAVA机制开发持久对象一包括关联,继承,组合和JAVA集合框架。HQL是一个简化的对SQL的在00机制上的扩展,在对象和关系数据库间提供一个桥的作用。HIBERNATE现在是JAVA世界中比较流的持久层解决方案。HIBERNATE具有提供HQL语言、透明持久性、复杂的ORM、简单但强大的API。高性能、J2EE集成、详细文档、开源软件的支持等等特性。IBATIS是另外一个持久层开源框架。使用IBATIS提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的JAVA对象,这一层与通过HIBERNATE实现ORM而言基本一致,而对于具体的数据操作,HIBERNATE会自动生成SQL语基于J2EE的一种多层,EB系统通用框架的设计与应用句,而IBA七IS则要求开发者编写具体的SQL语句。相对HIBERNATE等“全自动”ORM机制而言,IBATIS以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM实现的一种有益补充,IBATIS的出现显得别具意义。OPENORM是国内开发人员开发的一个持久层开源框架。OPENORM将JAVA语言和SQL语言有机融合,实现了面向对象的查询语言。在JAVA语言中为你营造了一个SQL语言环境,使我们能够在JAVA语言中以面向对象的方式编写SQL数据操作,OPENORM还对常用数据库的特性进行了统一化,比如函数、分段查询等,使得我们在开发中不需要再过多的关注数据库平台的区别。基于OOSQL,系统开发更灵活、更有效率,更主要的,OOSQL的使用也是符合SQL语言使用习惯的,任何熟悉SQL语言得人都能够很快的熟悉OOSQL,不需要再特别的学习其他的查询语言。但是由于该项目还处于刚起步阶段,很多BUG有待改进。大庆石油学院本科生毕业设计(论文)13第3章数字图书馆管理系统需求分析31功能需求在本系统中,对读者来说,他们关心的问题其实是如何方便的查询到图书馆中的书籍以及自己正在借阅或是已经借阅过些什么书,所借的书是否到期等。由此可以得出系统在面向读者方面应该至少做到如下几点1图书查询。2读者信息查询,读者信息的查询内容应包括下面的几个方面1读者信息对读者的基本信息进行显示。2书刊借阅对该读者借阅过的所有书籍进行查询。3借阅历史查询该读者借阅过的所有书籍。4违章信息该读者的违章信息。5读者规则该读者所应用的规则。对系统的管理员来说,应该注意的是1图书馆中有些什么书,它们都存放在那里,是不是可以被借阅;2本图书馆发放的读者证有那些,如何管理这些读者证;3这些读者证都借阅着那些书;4如何来确定这些读者证是否可用,以及借书的还期等。从以上问题出发,可以得出本系统应该具有的功能1图书查询对馆内的图书进行查询。2借阅管理对读者的每一次借阅,还书进进登记和管理。3图书管理对图书馆的书籍进行管理。4借阅证管理对读者的借阅证进行管理。5读者规则管理设置和管理读者规则。32开发环境需求硬件环境1处理器AMD3600大庆石油学院本科生毕业设计(论文)142内存1GB3硬盘空间160GB软件环境1操作系统WINDOWSXP;WEB服务器TOMCAT60;后台数据库MYSQL50;2IDE开发工具ECLIPSE32MYECLIPSE60;DREAMWEAVER80;PHOTOSHOPCS23浏览器INTERNETEXPLORE7大庆石油学院本科生毕业设计(论文)15第4章图书管理系统总体设计图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。41系统特点1用户无需考虑系统的安装维护。2界面美观、简单明快、主题突出。3用户可以方便的浏览书籍信息。大庆石油学院本科生毕业设计(论文)164系统使用STRUTS进行业务流程控制。5系统使用HIBERNATE全OR/MAPPING映射框架进行数据封装提高开发效率。6系统使用SPRING进行数据对象生成和管理。7系统选用强大的MYSQL数据库保存各类信息。8顾客可以注册成为系统用户,只有注册成功的系统用户才可以进行借阅、归还图书。42构成功能模块数字图书馆平台主要由前台管理模块和后台管理模块构成。1前台管理模块图书列表详细介绍(名称,图片,库存数量、内容介绍)等。用户模块用户登录、注册、修改资料。2后台管理模块图书管理添加删除修改图片上传用户管理查看修改用户资料、修改、删除用户出版社管理出版社的添加、删除、修改借阅管理图书的借阅、归还图41前台模块划分图图书馆管理系统用户登录图书查询大庆石油学院本科生毕业设计(论文)17图41后台模块划分图数据库设计43系统架构系统架构系统架构系统架构431基于STRUTSSPRINGHIBERNATE框架的J2E架构我们在项目开发实践中提出了一种基于STRUTSSPRINGHIBERNATE三种框架的J2EE架构,我们是将这三种框架整合起来应用到我们的WEB项目开发中的不同层。我们将我们的WEB开发在职责上至少能被分成4层。这四层是PRESENTATION描述,PERSISTENCE持久,BUSINESS业务和DOMAINMODEL域模块。表示层THEPRESENTATIONLAYER。432架构的优点1免费、开源、有丰富的文档和稳定的开发背景。2这种架构是分层的,由于采用的是整合技术,各层之问是相对独立的,这便于我们做大的项目时的团队合作适合每个团队做一块使得工作分的更细也避免了因为一块的失误造成整个项目的失败同时也增加了其重用性。3很好的思想,将项目逻辑上进行划分,然后在不同的逻辑层运用框架随着我们在开发中的实践,会分的更细,会把把WEB应用划分的更细,会把更多的图书馆管理系统图书管理用户管理图书查询借阅管理出版社管理大庆石油学院本科生毕业设计(论文)18框架应用到各层中,达到简化项目的开发和代码的重用。43架构的结构流程来自客户端的H11P请求送到STRUTS框架中的控制器ACTIONSEMET等候处理。ACTIONSERVLET包括一组基于配置的ACTIONMAPPING对象,每个ACTIONMAPPING对象实现了一个请求到一个具体的MODEL部分中ACTION处理器对象之问的映射。ACTIONSERVLET接受客户端的请求,并将请求交与REQUESTPROCESSOR来处理。REQUESTPROCESSOR根据请求的URL从ACTIONMAPPING中得到相应的ACTION并根据请求的参数实例化相应的AETIONFORM,再进行F0HN验证验证通过则调用ACTION的EXECUTE方法。在方法体内,调用业务逻辑模块,由HIBEMATE在“幕后”完成与数据库的交互。即业务逻辑类里通过HQL语句操作业务对象;HIBEMATE把HQL转换为SQL,通过0R映射文件实现具体对数据源的操作,即穿过持久层映射到具体的数据库表。EXECUTE方法执行后须返回ACTIONFORWARD。ACTIONSERVLET接受EXECUTE方法返回的ACTIONFORWARD对象。转发到ACTIONFORWARD指定的源。这个源可以是一个JSP或另一个ACTION或另一个SERVLET,当然在这里我们将执行程序的LOGIC,调用持久层,得到UI层的REQUESTS,处理TRANSACTIONS,并且控制EXCEPTIONS,我们使用SPRING提供的控制倒置INVERSIONOFTROLIOC用XML文件将对象连接起来然后通过给SPRING提供一个持久层,用它来处理业务逻辑层和其他层抛出的异常的。大庆石油学院本科生毕业设计(论文)19第5章数字图书馆管理系统详细设计及实现51业务流程图图53前台页面流程图图54后台页面流程图大庆石油学院本科生毕业设计(论文)2052MYSQL数据库设计这套系统采用的是HIBERNATE全OR/MAPPING映射框架实现持久化层,它只需为POJO类配置映射文件就可以在数据库中自动创建表。在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦,浪费时间的。HIBERNATE是一个面向JAYA环境的对象关系数据库映射具。对象关系数据库映射OBJECTRELATIONALMAPPINGORM这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。HIBEMATE不仅仅管理JAVA类到数据库表的映射包括JAVA数据类型到SQL数据类型的映射,还提供数据查询和获取数据的方法可以大幅度减少开发时人_T使用SQL和JDBC处理数据的时间HIBERNATE的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,HIBERNATE可能不是最好的解决方案;对于那些在基于JAVA的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,HIBERNATE是最有用的。不管怎样,HIBEMATE一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。HIBERNATE最好的使用方法是使用普通的JAVA对象HAINOLDJAYAOBJECTS,就是POJOS,有时候也称作PLAINORDINARYJAVAOBJECTS这种编程模型来进行持久化。HIBERNATE对每一种数据库都有对应的DIALECT进行操作优化,从而提高它在各种情况下的效率。目前,它的版本为31,支持商业应用中的绝大多数数据库。(1)图书表(T_BOOK)图书种类表是用来记录一类图书这个实体的,比如说三国演义其实是一类书,因为它不仅仅是有一本,而是有很多本书都可以是三国演义。一类书和一本的书的关系有类似于JAVA中类和对象的关系。图书表中的每一行记录代表同一种书的各个属性。表51图书表(T_BOOK)序号字段含义字段名类型宽度是否主码是否非空1书IDBOOKIDINTPKY2书名NAMEVARCHAR255Y3作者AUTHORVARCHAR2554出版时间PTIMEVARCHAR50大庆石油学院本科生毕业设计(论文)215图书版次PRODERINT506图书价格PRICEDOUBLE507图书页数PAGESBIGINT508图书总数TOTALBIGINT509图书库存REMAINBIGINT5010存放位置BOOKWHEREVARCHAR25511主要内容CONTENTVARCHAR5012录入人MANAGERVARCHAR20013添加时间ADDTIMEDATATIME14图片IMAGESVARCHAR25515备注REMARKVARCHAR25516借阅记录BORROWRECORDLONG255(2)读者表(T_USER)表52读者表(T_BOOK)序号字段含义字段名类型宽度是否主码是否非空1读者IDUSER_IDVARCHAR255PK2名字NAMEVARCHAR2553借书证号SNOVARCHAR255PK4密码PASSWORDVARCHAR2555EMAILEMAILVARCHAR2556地址ADDRESSVARCHAR2557密码问题PASSQUESTIONVARCHAR2558密码答案PASSANSWERVARCHAR2559性别SEXVARCHAR255以上是采用HIBERNATE自动生成的部分表结构,在整个系统中设计了6个实体类他们对应着各自的表。他们分别是(1)ADMINISTRATOR管理员类(2)USER用户类大庆石油学院本科生毕业设计(论文)2(3)PUBLISH_COMPANY出版社类(4)BORROWLIST借阅图书类(5)BOOK图书类(6)OVERTIME超期罚款类他们之间的关系是出版社类图书类(一对多)借阅图书类图书类(一对多)借阅图书类用户类(一对一)使用HIBERNATE的分为以下几个步骤(1)采用HIBERNATE配置类与类之间的关系,并将借阅图书类和用户类配置成一对一外键关联,即每生成一个用户都会对应的生成一个对应该用户的借阅列表。配置文件如下BORROWLISTHBMXML文件大庆石油学院本科生毕业设计(论文)23USERHBMXML文件BORROWLIST大庆石油学院本科生毕业设计(论文)24(2)将这些HBMXML的文件配置在SPRING的APPLICATIONCONTEXTHIBERNATEXML配置文件里的SESINFACTORY中。代码如下CN/ITCARERS/MODEL/ADMINISTRATORHBMXMLCN/ITCARERS/MODEL/BOOKHBMXMLCN/ITCARERS/MODEL/ORROWLISTHBMXMLCN/ITCARERS/MODEL/PUBLISH_COMPANYHBMXMLCN/ITCARERS/MODEL/USERHBMXMLORGHIBERNATEDIALECTMYSQLDIALECTORGHIBERNATECACHEEHCACHEPROVIDERUPDATEORGHIBERNATEHQLCLASICCLASICQUERYTRANSLATORFACTORYAUTO大庆石油学院本科生毕业设计(论文)25(3)在SPRING的配置文件APPLICATIONCONTEXTHIBERNATEXML中配置数据源DATASOURCE和SESIONFACTORYCOMMYSQLJDBCDRIVERJDBCMYSQL/LOCALHOST3306/DESIGNUSEUNICODETRUECHARACTERENCODINGGBKROOTSUNLONGAN10105050001800大庆石油学院本科生毕业设计(论文)2630005只需这样在项目发布到WEB服务器TOMACT中时,启动TOMCAT数据库中就会自动创建相应的表。53系统前台模块实现大庆石油学院本科生毕业设计(论文)27图55图书馆系统主页截图531用户登陆图56用户登录红色框中的为用户登录区登录/注册模块,用户登录到用户的空间,或者新用户注册。登陆成功跳到个人中心页面,失败返回首页。代码实现如下PACKAGECNITCARERSWEBPORTALACTIONIMPORTJAVAXSERVLETHTTPHTPSERVLETREQUESTIMPORTJAVAXSERVLETHTTPHTPSERVLETESPONSEIMPORTORGAPACHESTRUTSACTIONACTIONFORMIMPORTORGAPACHESTRUTSACTIONACTIONFORWARDIMPORTORGAPACHESTRUTSACTIONACTIONMAPPINGIMPORTCNITCARERSBASEBASEACTIONIMPORTCNITCARERSMODELUSERIMPORTCNITCARERSSERVICEUSERMANAGERIMPORTCNITCARERSWEBPORTALFORMREGFORMPUBLICLASLOGINACTIONEXTNDSBASEACTIONPUBLICACTIONFORWARDEXCUTEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTPSERVLETREQUESTREQUEST,HTPSERVLETRESPONSERSPONSEREGFORMREGFORMREGFORMFORMUSERMANAGERUSERMANAGERUSERMANAGERGETAPPLICATIONCONTEXTGETBEAN“USERANAGER“USERUSERNEWUSER大庆石油学院本科生毕业设计(论文)28USERSETNAMERGFORMGETNAMEUSERSETPASWORDREGFORMGETPASWORDUSERUSER1USERMANAGERCHECKUSERBYNAMEANDPASWORDUSERIFUSER1NULLIFUSERGETPASWORDEQUALSUSER1GETPASWORDREQUESTGETSESIONSETATRIBUTE“USER“,USER1RETURNMAPPINGFINDFORWARD“SUCCES“RETURNMAPPINGFINDFORWARD“FAIL“532图书搜索搜索馆藏图书,可以键入书号或书名进行搜索,搜索出结果后可以点击详细信息进行查看图书详细信息。此功能只实现了搜索图书。使用的技术是LUCENE和数据库的模糊查询。大庆石油学院本科生毕业设计(论文)29图57图书搜索图58搜索图书结果大庆石油学院本科生毕业设计(论文)30541管理员登陆用户名和密码都是初始化的ADMIN。登陆成功进入后台主页面欢迎页面。图59后台管理员登陆页面图510后台欢迎页面542借阅管理借阅管理功能是提供给管理员使用的。当有一个读者要借书的时候,读者把图书和读者证交给管理员,管理员根据证件上的图书证号,填入图53所示的界面中,单击“提交”按钮,到达借书页面图54中填入书号借阅该图书,点击相应图书的归还,归还用户已借阅图书。大庆石油学院本科生毕业设计(论文)31图511书籍借阅入口页面图512用户借阅图书列表543用户管理5431管理管理员实现的功能是添加、修改、删除管理员,在表单中输入用户名密码,点击添加按钮添加管理员。点击修改可以修改管理员,点击删除删除相应管理员。图513管理管理员截图大庆石油学院本科生毕业设计(论文)325432添加用户该系统前台可以注册用户,后台也可以添加用户。输入对应的值点击添加。图514添加用户543管理用户管理用户可以修改用户信息,删除用户,批量删除用户。图515用户列表54图书管理541添加图书动态显示出版社可以上传图书图片,对应表单有相应的验证功能。这里实现图片上传功能使用的STRUTS框架实现的。图片添加即可显示,以便用户检查是否添加大庆石油学院本科生毕业设计(论文)3正确。实现代码如下FORMILEMYFILEADDBOOKFORMGETMYFILESTRINGREALPATHREQUESTGETSESIONGETSERVLETCONTEXTGETREALPATHFILESPARATORREALPATHREALPATH“IMAGES“FILESPARATOR“PRO_PIC“FILESPARATORSTRINGFULLPATHREALPATHMYFILEGETFILENAMESTRINGSAVEPATH“IMAGES“FILESPARATOR“PRO_PIC“FILESPARATORMYFILEGETFILENAMESYSTEMOUTPRINTLN“REALPATH“REALPATHSYSTEMOUTPRINTLN“FULLPATH“FULLPATHSYSTEMOUTPRINTLN“SAVEPATH“SAVEPATHTRYOUTPUTSTREAMOUTNEWFILEOUTPUTSTREAMFULLPATHTRYOUTWRITEMYFILEGETFILEDATOUTFLUSHOUTCLOSECATHIOEXCEPTIONE/TODAUTOGENERATEDCATHBLOCKEPRINTSTACKTRACECATHFILENOTFOUNDEXCEPTIONE/TODAUTOGENERATEDCATHBLOCKEPRINTSTACKTRACEBOOKMANAGERBOOKMANAGERBOOKMANAGERGETAPPLICATIONCONTEXTGETEAN“BOOKMANAGER“STRINGBOOKNAMEREQUESTGETPARMETR“BOOKNAME“STRINGBOOKAUTHORREQUESTGETPARMETR“BOOKAUTHOR“STRINGPTIMEREQUESTGETPARMETR“PTIME“STRINGPORDERREQUESTGETPARMETR“PORDER“STRINGPRICEREQUESTGETPARMETR“PRICE“STRINGPAGESREQUESTGETPARMETR“PAGES“大庆石油学院本科生毕业设计(论文)34STRINGTO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论