资源描述
太原理工大学专科毕业论文题 目 基于JSP的图书管理系统 学院专业班级姓名指导教师2011年9月太原理工大学毕业设计(论文) 摘 要随着科学技术的进步和计算机行业的迅速发展,人们的工作效率得到大大提高。计算机信息处理系统的引进已彻底改变了许多系统的经营管理。图书管理系统是学校管理机制中的重要组成部分,通过对图书馆管理系统的运行管理机制进行调查和研究,开发了此图书馆管理系统。本文中主要介绍了图书馆管理事务中的常见基本问题等研究背景,进行了全面的可行性分析,详细论证了系统的需求分析、系统设计、系统实现和系统测试过程。本系统使用JSP进行网页界面的设计,使用MVC设计模式,采用开源框架Struts、Hibernate和Spring进行开发。后端的数据库采用Oracle,通过JDBC驱动和数据库进行无缝连接。系统实现了用户登录、图书管理、借书证管理、图书借阅管理等功能模块。用户登录模块实现用户的登录和权限判定;图书管理模块实现了对图书的添加、删除、修改、查询等功能;借书证管理模块实现了对学生的添加、删除、修改、查询等功能;图书借阅管理模块实现了学生对图书的借阅、还书和所借图书的查看等功能。测试结果表明,本系统实现了图书馆图书管理的主要功能,基本满足图书管理的需要。关键词:图书馆,图书管理系统,JSP,STRUTS,HIBERNATE,SPRING.-I-太原理工大学毕业设计(论文) 目 录1绪 论11.1目前图书馆管理系统存在的问题11.2系统设计的目的和意义11.3开发工具及相关技术介绍31.3.1 SSH框架31.3.2 Tomcat32可行性分析42.1技术可行性42.2经济可行性52.3操作可行性53需求分析63.1图书馆管理系统需求概述63.2功能需求63.2.1 与读者相关的基本功能元素63.2.2 与管理员相关的基本功能元素73.2.3 总体系统的基本功能元素73.3性能需求73.4运行需求84系统设计94.1 图书馆管理系统设计指导思想和原则94.2设计模式94.3 图书馆管理系统总体功能概述104.4 图书馆管理系统各功能模块概述114.4.1 系统登录模块114.3.2 图书管理模块124.3.3 学生管理模块134.3.4 借阅信息管理模块144.3.5 图书检索模块164.4 系统数据库设计175系统实现225.1系统的软件结构225.2登录系统模块的实现225.3图书管理模块的实现245.3.1图书入库功能的实现245.3.2图书维护功能的实现255.4学生管理模块的实现295.4.1学生添加功能的实现295.4.2学生维护功能的实现305.5借阅信息管理模块的实现335.5.1办理图书借阅功能的实现335.5.2办理图书归还功能的实现345.6图书检索模块的实现355.7系统设计的创新点365.7.1系统后台管理的安全性365.7.2DAO数据访问接口376系统测试386.1系统测试的方法与步骤386.2模块测试386.2.1 登录模块测试386.2.2 图书管理测试396.2.3 学生管理测试396.2.4 借阅信息管理测试406.3 评价407 结束语42致 谢43参考文献44-III-太原理工大学毕业设计(论文) 1绪 论1.1目前图书馆管理系统存在的问题(1)检索速度慢、效率低因为图书馆的藏书种类多。数量大,将藏书准确的分门别类,快速检索,手工进行非常困难,往往是终于查到了二维的信息,馆中却没有此书或已被别人借走。图书馆的规模越大,这个问题就越突出。(2)借书、还书工作量大借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期,遗失等的处理,其工作量之大,往往是人工操作所难以胜任的,而且经常会出现这样那样的差错。(3)图书统计工作难、藏书更新不能及时完成图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性的进行,藏书的知识结构得不到良好地控制。我校也是一所发展中的高校,近几年的发展速度很快,图书馆的规模和藏书的数量也在不断地扩大,为了解决海量图书的管理问题,以及学生借阅图书的信息问题,改变传统的管理方式也就成了迫在眉睫的问题了。1.2系统设计的目的和意义随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业内部,甚至是书店,在正常运行的过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。因此需要对读者资源,书籍资源,借书信息,还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速地满足读者的要求,提高各种工作效率,现对其设计相应的系统,以达到上述的目的。图书馆管理系统的主要功能是实现图书馆图书的借阅和归还的管理自动化,图书新增及销毁的及时化,用户及图书信息的更新,围绕这些主要功能,本系统涉及到以下核心功能:借阅管理,归还管理,图书管理,学生管理。除了这些核心功能外,还包括一些基本和辅助的功能,它们是:图书信息管理,查询功能等。该系统设计的主要目标是:设计一个图书馆管理系统,该系统主要功能分为图书查询、图书借阅归还和图书管理三大部分。在图书查询模块中要求用户能在浏览器中分别书名、著译者、类型等条件查询;在图书管理模块中要求能完成如办理借书证(即添加新的学生)、新书录入、借书还书登记、图书修改等日常管理功能。(1) 网站前台设计:前台供学生使用,学生登录后有如下权利图书查询:用户可以按多种方式对图书库中的图书进行查询;借阅信息查询:用户可以查看自己的历史借阅信息。(2)网站后台设计:后台是供管理员使用的,管理员登陆后有如下权利办理借阅证:将学生信息填写完整,在数据库中注册新用户;书籍的录入及删除:可以对现有图书库中的图书进行删除,也可以添加新书;借书还书登记:普通用户借阅或归还图书时,管理员将在借阅信息表中添加相应的记录;图书修改:管理员可以对现有图书的详细信息进行修改。1.3开发工具及相关技术介绍1.3.1 SSH框架SSH框架是指Struts2 + Hibernate + Spring三大开源框架技术,用SSH技术进行开发,能够提高开发效率,层次清晰。Struts2实现页面的设计和请求的跳转调用业务逻辑;Hibernate实现对数据的增删改查;Spring通过依赖注入控制对象的生成和事务的处理。1.3.2 TomcatTomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,有众多大软件的公司的支持,而且服务器的性能稳定,其发展前景很好。-37-太原理工大学毕业设计(论文) 2可行性分析 采用现代化统一的计算机信息网站系统,能够有效优化图书馆管理系统,使其高校的发挥最大的作用,能够迅捷的为读者提供相应的服务。开发本系统的可行性如下:2.1技术可行性 Struts框架为开放者提供了一个统一的标准框架,它提供了一个方法,可以在一个Web应用程序中一起使用JSP和Servlet。 Struts框架本身是使用Java Servlet和JavaServer Pages技术的一种Model-View-Controller(MVC)实现。它的目的是要解决完全由JSP或完全由Servlet实现的应用程序中的固有的问题。MVC方法采用了JSP和Servlet方法的最佳特性,使这两种技术可以协同工作。明确的是,Servlet是处理层(控制器)。Servlet接收请求,很像Model1架构中JSP页面所做的那样,并确定如何满足那些请求。这就意味着,Servlet控制输入的请求和输出的回应。商业逻辑体现了MVC架构中的模式。商业逻辑代码为页面做处理。如果进入Servlet的请求是一个数据库查询,Servlet就将这个请求传送到一个SQL调用或类似的数据库代码。在某种意义上,架构的模式部分是让应用程序处于领先地位的全部原因。 JSP页面是显示层(视图),是用户与应用程序交互的地方。它提供输入并显示结果。页面不应该包括任何脚本。它只是将数据传送到Servlet,并接收和显示返回的数据。 该架构的优势应该是很明显的。首先,它将计算和显示清楚地分开了。结果很理想,在JSP页面上没有出现处理过程,在Servlet或商业逻辑中没有数据格式。这种分离的另一个好处是Java程序员可以专注于Servlet代码,HTML编写者可以专注于JSP。第二点,控制器Servlet做页面上的所有的决定。在你的页面和逻辑中不会出现任何决策。这就提高了一个应用程序的性能和可扩展性,因为请求可以被导向架构的不同的组件,甚至是不同的服务器。另外Struts技术支持广泛:Struts作为目前最流行的框架,技术资料众多,即使是一些很偏的问题也可以在网上找到相关的资料和答案。完善的标签库:与其他框架比较,Struts提供了最完善的标签库,为Web的开发带来了极大的方便。开发工具支持:目前所有主要的Java IDE都支持Struts的开发,有不少专用的开发工具和插件还提交了Struts的可视化设计,这是其他框架所不可比的。本系统采用的技术均属当前流行的开发技术,具有技术成熟、效率高、稳定、安全等优点,并且自行配置的兼容机性能优越,能够支持以上软件的运行。所以,本系统在技术上是完全可行的。2.2经济可行性 根据成本/效益分析法,本系统所需的软硬件资源都已具备,该系统简单易懂,本系统具有成本相对较低、利益高的特点,经济上可行。2.3操作可行性 本系统开发的开发宗旨是以便捷为中心。开发后的系统应具有美观、大方、简单、易操作等优点,即使是不懂计算机的人员也可以根据系统提示使用和管理本系统,它的操作简单的特点使本系统在操作上可行。太原理工大学毕业设计(论文)3需求分析3.1图书馆管理系统需求概述图书馆管理系统的开发主要涉及到图书的管理,学生信息的管理,借阅信息的管理三大功能的数据管理。从管理的角度可将图书分为三类:图书信息管理、系统用户管理、读者数据管理。图书信息管理包括:添加新进图书、删除旧图书、修改图书信息。系统用户管理包括:修改用户信息、办理新用户、注销用户。读者数据管理主要包括:读者借阅信息的管理,借阅图书以及归还图书。图书借阅者的需求是查询图书室所存的图书。个人借阅情况以及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书管理人员的功能最为复杂,包括对图书借阅者、图书进行管理和维护、以及系统状态的查询和维护等。图书馆管理员可以浏览、查询、添加、删除、修改的基本信息;浏览、查询、添加、删除和修改图书借阅者的基本信息;浏览、查询、添加、删除和修改图书的借阅信息。3.2功能需求在本系统中,对读者来说,他们关心的问题其实是如何方便的查询到图书馆中的书籍以及自己正在借阅或者已经借阅过一些什么书籍,也就是借阅历史,另一个关心的问题就是所借阅的图书是否到期等等。由此可以得出系统一些需求。3.2.1 与读者相关的基本功能元素(1)图书查询:应该能够按照图书不同信息对图书进行查询,如书名、作者、图书类型等条件查询。(2)读者信息查询,读者信息的查询内容应包括以下几个方面:读者信息对读者的基本信息进行显示。书刊借阅对该读者借阅书籍记录进行查询。欠款查询对该读者超期图书的欠款情况的查看。3.2.2 与管理员相关的基本功能元素在面向系统的管理员来说,应注意如下几点:(1)图书馆中有哪些书籍,是否可以被借阅;(2)对学生的添加、修改和删除操作的方便性;(3)查看学生都借阅着哪些书籍;(4)对书籍的添加、修改和删除操作的方便性。3.2.3 总体系统的基本功能元素从以上问题出发,可以得出本系统应该具有的功能:(1)图书查询对馆内的图书进行查询;(2)借阅管理对读者的每一次借阅,还书进行登记和管理;(3)图书管理对图书馆的书籍进行管理,添加、删除以及修改信息;(4)学生管理对学生进行管理,添加、删除以及修改信息;(5)欠款情况管理对读者借阅图书超期欠款的情况进行管理。3.3 性能需求3.3.1人身和环境安全性需求(1)系统中的软件不构成对人身健康的损害;(2)系统中的软件失效时不造成财产的损失;(3)系统中的软件失效时不造成环境的破坏。3.3.2可靠性和可用性需求(1)系统中的软件可以每天使用24小时,每年使用365天;(2)系统中的软件故障率小于等于5%。3.3.3容错性需求用户输入错误信息时,系统应提示,不应崩溃。3.3.4易用性软件适合12-70周岁的智力、视力、体力和肢体正常且具有图书借阅相关知识的人使用;3.3.5易学性经过1-2天培训的使用者可以正常使用本软件。3.4 运行需求3.4.1预期的物理环境(1)系统在常温环境下使用;(2)系统在洁净的室内使用。3.4.2预期的技术环境(1)宽带网、1M以上宽带互联网;(2)台式计算机:CPU P4 2.0G以上,内存256M以上,硬盘40G以上,10M/100M网卡,Windows 2000/2003/NT/XP/Vista/Windows 7中文操作系统;(3)数据库管理系统:Oracle 9g及以上。4系统设计4.1 图书馆管理系统设计指导思想和原则(1)利用软件开发现有软硬件环境,及先进的管理系统开发方案,从而到达充分利用现在资源提高系统开发水平和应用效果的目的。(2)系统应该符合软件工程开发的理论,开发方法等开发依据。(3)系统应满足图书馆管理工作的需要,并达到操作过程中的直观,方便,实用,安全,准确等要求。(4)系统应具备数据库维护功能,及时根据用户需求进行数据库的各种操作。(5)系统采用原型,实用模块化程序设计方法,便于系统功能的各种组合和修改,以及系统的测试与维护。(6)图书馆管理系统的设计应适合校园的发展。(7)图书馆管理系统的设计应当遵循数据库设计规范。4.2 设计模式设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种广泛流行的软件设计模式MVC。MVC(ModelViewController)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。图4-1 MVC模式MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,现实模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并相应请求。其模型的关系如图所示。在MVC模型中,三层各尽其职、相互独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应该操作的耦合度,也能更好的实现开发中的分工,加速工程进度。4.3 图书馆管理系统总体功能概述图书管理系统包含五个模块分别是:系统登录、图书管理、学生管理、借阅信息管理、图书检索。系统登录模块:一般用户和管理员都必须登录才能进入系统,用户登录时在后台判断用户的权限类型,分为普通用户和管理员,普通用户可以对书籍进行浏览及个人借阅信息的查询,管理员可以对多种信息进行操作。图书管理模块:管理员通过验证界面进入系统后,进入到图书管理模块,可以对图书进行添加,删除、修改图书信息、查询、查看等一系列的操作。学生管理模块:管理员可以在此模块中创建新的普通用户,并且可以对用户的信息进行修改,删除等操作。借阅信息管理模块:这是图书管系统中最重要的模块之一,管理员进入该模块中可以为普通用户办理借阅图书,归还图书的功能,并且能够实现还款的操作。图书检索模块:普通用户通过验证界面进入系统后,能够按照书名,作者等多种条件对图书进行查询操作,确保查询到的都是最新的信息。整体系统的功能模块如图4-2所示:图4-2 图书馆管理系统功能图4.4 图书馆管理系统各功能模块概述4.4.1 系统登录模块用户进入系统时调用的一个模块。该模块根据用户输入的用户名、密码来判断用户的类型,跳转到该类用户的界面。本模块的功能点包括:(1) 判断用户名和密码是否相符;(2) 根据用户的权限类型,登录到系统的制定界面操作使用。登录功能模块流程图如图4-3所示:图4-3 登录模块流程图4.3.2 图书管理模块在本模块中图书馆工作人员可以对图书进行管理操作。本模块的功能点包括:(1) 新书入库,将新进图书按其类型将图书的基本信息录入系统数据库; (2) 图书出库,某一部分图书会随着时间的增长及知识的更新而变得不再有收藏的价值,或者图书被损坏,这些图书就要在图书库中除去。即从图书库中删除此图书记录;(3) 新书编码,图书入库后,需要贴上条形码,以便以后提供借阅,本系统不涉及到条形码阅读器,只是假定此过程已经生成条形码。编码只是将条形码帖于书上以唯一标识图书;(4) 图书信息修改,图书信息由于工作人员的疏忽,而出现录入错误,提供其图书ID就可以查看图书的基本信息并对其进行修改;图书管理功能模块流程图如图4-4所示:图4-4 图书管理模块流程图4.3.3 学生管理模块本模块主要是工作者对学生信息(读者借书证信息)进行管理。本模块的功能点包括:(1) 办理借书证,为新读者办理借书证,填写用户基本信息;(2) 注销借书证,输入读者借书证编号,根据借书证ID删除读者表中此借书证信息;(3) 挂失借书证,主要是将借书证的状态改为挂失,更新读者表状态字段,有图书管理员操作;(4) 修改图书证信息,由于工作人员的疏忽,而出现办理借书证时录入信息有误,则可根据借书证编号对其信息进行查看和修改。借书证管理功能模块流程图如图4-5所示:图4-5 借书证管理模块流程图4.3.4 借阅信息管理模块本模块主要是工作者对图书外借和归还进行管理。本模块的功能点包括:(1) 图书借阅,记录借阅证编号和图书编号,进行借书过程。在数据库中插入一天借书记录,该记录包括图书ID、借书证ID、借阅日期、归还日期等;(2) 图书归还,输入借书证编号,图书编号,根据输入的编号在借阅登记表中找到相应的记录,将借阅记录删除,并将该记录相应的数据更新到历史借阅记录信息表中;(3) 查看借阅记录,可以根据借书证ID以及图书ID查询借阅记录。(4) 办理还款,如读者有图书超期的情况将会有欠款,可以根据借书证的ID来为读者班里还款。借阅信息管理功能模块流程图如图4-6所示:图4-6 借阅信息管理模块流程图4.3.5 图书检索模块使用该模块的用户有:读者和管理员。本模块的功能点包括:(1) 根据图书ID进行检索;(2) 根据图书名称进行检索;(3) 根据图书类型进行检索。(4) 根据图书作者或译者进行检索。图书检索功能模块流程图如图4-7所示:图4-7 图书检索模块流程图4.4 系统数据库设计4.4.1 概念结构设计(1)实体图学生:学生属性有学号、姓名、密码、性别、学院、班级、电话、email、宿舍、地址、已借书数量、创建日期。学生实体图如图4-8所示:学生学号创建日期已借书数量地址宿舍email电话班级学院性别密码姓名图4-8 学生实体图图书:图书属性有图书编号、书名、作者、类别、单价、出版社、出版日期、总数量、当前数量、购买日期、内容摘要。图书实体图如图4-9所示:图书编号书名内容摘要购买日期当前数量作者图书总数量类别出版日期出版社单价图4-9 图书实体图(2)ER图根据以上实体图,分析了各个实体的属性,根据这些属性,可以得到系统的ER图,如图4-10所示班级属于1n学生借书日期nn属于借阅还书日期超期罚款1n学生图书图4.8 系统E-R图4.4.2 逻辑结构设计根据上述功能模块的需求,设计如下主要数据库表:表4.1 图书信息表(t_book)字段英文名称字段中文名称字段类型字段约束是否可为空Book_num图书编号Varchar2(15)主键否Book_name书名Varchar2(20)否Writer作者Varchar2(10)否Sort_id类加IDVarchar2(5)否表4.1图书信息表(t_book) 续表01Price单价Number(5.2)是Pub_company出版社Varchar2(20)是Pub_date出版日期Date是Total_num总数量Number(3)否Current_num当前数量Number(3)否Buy_date入库日期Date否Brief内容摘要Varchar2(100)是表4.2 学生信息表 (t_student)字段英文名称字段中文名称字段类型字段约束是否可为空Student_num学号Varchar2(15)主键否Student_name姓名Varchar2(10)否Password密码Varchar2(20)否Academy_id学院IDVarchar2(10)否Class_id班级IDVarchar2(10)否Sex性别Varchar2(2)是Telephone电话Varchar2(15)是EmailEmailVarchar2(20)是Lended_num已借书数量Number(2)默认为0否Create_date创建日期Date否表4.3 借阅信息表(t_book_student)字段英文名称字段中文名称字段类型字段约束是否可为空IdID号Varchar2(35)主键否Book_id图书编号Varchar2(15) 否Student_id学号Varchar2(15)否borrow_date 借书日期Date否return_date 还书日期Date否Money超期罚款Number(5.2)否表4.4 管理员表(t_admin)字段英文名称字段中文名称字段类型字段约束是否可为空Admin_id管理员IDNumber(5)主键否Admin_name管理员姓名Varchar2(10) 否Admin_password管理员密码Varchar2(20)否表4.5 学院表(t_admin)字段英文名称字段中文名称字段类型字段约束是否可为空Academy_id学院IDVarchar2(10)主键否Academy_name学院名Varchar2(30) 否表4.6 班级表(t_class)字段英文名称字段中文名称字段类型字段约束是否可为空Class_id班级IDVarchar2(10)主键否Class_name班级名Varchar2(30)否Academy_id所属学院IDVarchar2(10) 否表4.7 图书类别表(t_admin)字段英文名称字段中文名称字段类型字段约束是否可为空Sort_id类别IDVarchar2(5)主键否Sort_name类别名Varchar2(20) 否太原理工大学毕业设计(论文)5系统实现5.1系统的软件结构处理静态WEB是由Web浏览器向Web发送静态页面, Web服务器直接对发送的静态网页进行处理。处理动态WEB数据库查询的过程是:当Web浏览器向Web服务器发送请求时,动态网页的处理流程是,屏蔽掉HTML语言,只输入动态网页文件,由Web服务器向数据库中传递信息,经过数据库的处理返回数据集,Web应用服务器再把含有程序代码的动态网页转换为静态网页返还给Web浏览器。这就是用动态网页对数据库进行查询并将数据返还给浏览器处理的全过程,具体见图5-1所示。图5-1数据库查询示意图5.2登录系统模块的实现本模块主要是用户通过图书馆管理系统的首页进入该系统。用户输入正确的用户名和密码,如果登录信息有错误,则系统提示登录错误信息,并且禁止系统用户进行任何操作。若登录信息正确,系统会根据用户的身份进行相应权限的判断,读者进入前台系统,管理员进入后台系统。图书馆系统登录主页面如图5-2所示。图5-2 图书馆管理系统登录界面其实现的代码如下:Action层:public String login() boolean flag = iss.login(admin);if(flag) return success; message = 用户名或口令错误!;return fail;Service层:public boolean login(TAdmin admin) TAdmin a = isd.login(admin);if(a != null) return true;return false;Dao层:public TAdmin login(TAdmin admin) Session session = this.getHibernateTemplate().getSessionFactory().openSession();Query q = session.createQuery(from TAdmin a where a.adminName = ? and a.adminPassword = ?).setString(0, admin.getAdminName().setString(1, admin.getAdminPassword();TAdmin a = (TAdmin)q.uniqueResult();return a;5.3图书管理模块的实现图书管理模块主要分为图书入库、查看图书、统计图书,其中图书入库是往图书管理数据库中添加图书信息。看图书功能中可以查看图书详细信息,并对图书信息进行修改或删除某些废弃图书信息。5.3.1图书入库功能的实现点击添加图书功能,填写图书基本信息,为图书选择类型,类型是与数据库交互动态生成的下拉列表,具体界面如图5-3所示。图5-3 图书入库界面其实现的代码如下:public String addInfoBook() this.sortList = ibs.listBookSort();return add;public List listBookSort() return this.getHibernateTemplate().find(from TSort tsort);public String addSaveBook() ibs.saveBook(book);book = null;bookList = this.listBook();return Book;public void saveBook(TBook book) Date now = new Date();book.setBuyDate(now);book.setCurrentNum(book.getTotalNum();ibd.saveBook(book);public void saveBook(TBook book) this.getHibernateTemplate().save(book);5.3.2图书维护功能的实现点击图书维护功能,展示所有图书的信息列表,在每个图书信息行后提供删除和修改操作功能,并且可以单击选定某一个图书信息后的详细信息进行详细查看图书信息。具体图书列表界面如图5-4所示图5-4 图书列表界面其实现的代码如下:public String listAllBook() bookList = this.listBook();return Book;public List listBook(TBook book, Page page) String hql = from TBook tb where 1=1;if(book!=null) if(book.getBookNum() != null & !.equals(book.getBookNum().trim() hql = hql + and tb.bookNum = + book.getBookNum()+;if(book.getBookName() != null & !.equals(book.getBookName().trim() hql = hql + and tb.bookName = + book.getBookName()+;if(book.getWriter() != null & !.equals(book.getWriter().trim() hql = hql + and tb.writer = + book.getWriter()+; if(!book.getSortId().getSortId().trim().equals(-1) hql = hql + and tb.sortId.sortId = + book.getSortId().getSortId()+;hql = hql + order by tb.bookName; else hql = hql + order by tb.buyDate desc;Session session = this.getHibernateTemplate().getSessionFactory().openSession();Query q = session.createQuery(hql);q.setFirstResult(page.getStartRow();q.setMaxResults(5);List list = q.list();return list;(1)删除图书功能的实现管理员删除图书,删除时可删除一个,也可同时多选删除,其实现的代码如下:public String deleteOneBook() ibs.delBookById(bookNum);bookList = this.listBook();return Book;public String deleteMoreBook() ibs.delMoreBook(bookNums);bookList = this.listBook();return Book; public void delBookById(String bookNum) this.getHibernateTemplate().delete(this.getHibernateTemplate().get(TBook.class, bookNum); public void delMoreBook(String bookNums) for(int i=0; ibookNums.length;i+) this.getHibernateTemplate().delete(this.getHibernateTemplate().get(TBook.class, bookNumsi);(2)修改图书信息功能的实现在管理员修改图书信息时,跳转到图书信息详细表单中,列出所要修改图书的详细信息,并可以进行修改,则修改界面如图5-5所示。图5-5 修改图书信息界面其实现的代码如下:public String modifyInfoBook() this.sortList = ibs.listBookSort();book = ibs.queryOneBookById(bookNum);return modifyInfo;public String modifySaveBook() ibs.modifyBook(book);book = null;bookList = this.listBook();return Book;public TBook queryOneBookById(String bookNum) TBook book = (TBook)this.getSession().createQuery(from TBook tb where tb.bookNum = ?).setString(0, bookNum).uniqueResult();this.getSession().close();return book;public void modifyBook(TBook book) this.getHibernateTemplate().update(book);(3)查看图书详细信息功能的实现在管理员点击详细信息时,跳转到某图书信息详细表单中,列出所选图书的详细信息,则显示界面如图5-6所示。图5-6图书详细信息界面其实现的代码如下:public String infoDetailBook() book = ibs.queryOneBookById(bookNum);return Detail;public TBook queryOneBookById(String bookNum) TBook book = (TBook)this.getSession().createQuery(from TBook tb where tb.bookNum = ?).setString(0, bookNum).uniqueResult();this.getSession().close();return book;5.4学生管理模块的实现学生管理模块主要分为添加学生、查看学生、修改学生,查看学生的详细信息。 5.4.1学生添加功能的实现点击添加学生,填写学生基本信息,具体界面如图5-7所示。图5-7办理借书证界面其实现的代码如下:public String addInfoStudent() this.academyList = iss.listAllAcademy();return add;public void addStudent(TStudent student) Date now = new Date();student.setCreateDate(now);student.setLendedNum(0);isd.saveStudent(student);public List listAllAcademy() return this.getHibernateTemplate().find(from TAcademy ta);public List listAllClass() return this.getHibernateTemplate().find(from TClass tc);public void saveStudent(TStudent student) this.getHibernateTemplate().save(student);5.4.2学生维护功能的实现点击学生维护功能,展示所有读者的信息列表,在每个读者信息行后提供删除和修改操作功能,并且可以单击选定某一个读者信息后的详细信息进行详细查看读者信息。具体读者列表界面如图5-8所示图5-8 读者列表界面其实现的代码如下:public String listAllStudent() studentList = this.getStudentListByPage();return Student;public List listAllStudent(Page page) Session session = this.getHibernateTemplate().getSessionFactory().openSession();Query q = session.createQuery(from TStudent ts);q.setFirstResult(page.getStartRow();q.setMaxResults(5);List list = q.list();return list;(1)删除学生功能的实现管理员删除读者,删除时可删除一个,也可同时多选删除。其实现的代码如下:public String deleteOneStudent() iss.deleteOneStudent(studentNum);studentList = this.getStudentListByPage();return Student;public String deleteMoreStudent() iss.deleteMoreStudent(studentNums);studentList = this.getStudentListByPage();return Student;public void deleteOneStudent(String studentNum) this.getHibernateTemplate().delete(this.getHibernateTemplate().get(TStudent.class, studentNum);public void deleteMoreStudent(String studentNums) for(int i=0;istudentNums.length;i+) this.getHibernateTemplate().delete(this.getHibernateTemplate().get(TStudent.class, studentNumsi);(2)修改学生信息功能的实现在管理员修改学生信息时,跳转到学生信息详细表单中,列出所要修改学生的详细信息,并可以进行修改,则修改界面如图5-9所示。图5-9 修改读者信息界面其实现的代码如下:public String modifyInfoStudent() this.student = iss.getStudentByid(studentNum);this.academyList = iss.listAllAcademy();this.classList = iss.listClassById(student.getAcademyId().getAcademyId();return modifyInfo;public String modifySaveStudent() iss.modifyStudentByid(student);student = null;studentList = this.getStudentListByPage();return Student;public TStudent getStudentByid(String studentNum) return (TStudent)this.getHibernateTemplate().get(TStudent.class, studentNum);public void modifyStudentByid(TStudent student) this.getHibernateTemplate().update(student);(3)查看读者详细信息功能的实现在管理员点击详细信息时,跳转到某读者信息详细表单中,列出所选读者的详细信息,则显示界面如图5-10所示。图5-10读者详细信息界面其实现的代码如下:public String infoDetailStudent() student = iss.getOneStudentById(studentNum);return Detail;public TStudent queryOneStudentById(String studentNum) TStudent student = (TStudent)this.getSession().createQuery(from TStudent ts where ts.studentNum = ?).setString(0, studentNum).uniqueResult();this.getSession().close();return student;5.5借阅信息管理模块的实现借书信息管理模块主要分为办理图书借阅、办理图书归还、借阅信息查看,其中借阅信息查看可按图书编号和借书证编号查看。5.5.1办理图书借阅功能的实现点击图书借阅,填写图书编号和借书证编号,具体界面如图5-11所示。图5-11办理图书借阅界面其实现的代码如下:public String saveBookStudent() message = ils.saveBookStudent(bookStudent);return success;public String saveBookStudent(TBookStudent bookStudent) TBook book = ild.getOneBook(bookStudent.getBookId();if(book.getCurrentNum() = 0) return 该书已被借完!;TStudent student = ild.getOneStudent(bookStudent.getStudentId();if(student.getLendedNum() = 9) return 借书数量已达到最大,不能在借!;Date borrowDate = new Date();long l = borrowDate.getTime();long ll = l + 30*24*60*60*1000L;Date returnDate = new Date(ll);bookStudent.setBorrowDate(borrowDate);bookStudent.setReturnDate(returnDate);bookStudent.setMoney(0d);/补上所欠金额的计算ild.saveBoo
展开阅读全文