1、基于 Struts 和 Hibernate 的图书管理系统设计与实现 摘 要 本文 ?对高校图书馆存在的问题,采用 Struts和 Hibernate技术设计实现图书管理系统,满足校园图书馆对图书管理的需求。该系统采用B/S 结构,使用 JSP 开发前台网页,后台使用 Hibernate 对 Mysql 数据库进行数据操作。重点从总体框架、层次结构、数据库方面,对图书管理系统进行设计,并对系统进行测试,结果显示系统符合预期要求,提高了图书管理人员的工作效率。 下载 关键词 图书管理系统; Struts; Hibernate doi: 10.3969/j.i 中图分类号 G250.7 文献标识码
2、 A 文章编号 1673-0194( 2017) 20-0-02 0 引 言 本文设计并实现了图书管理系统,以能够完成图书、读者等基本信息的录入与查询,实现图书的借阅与归还,并能通过动态的权限分配,使管理人员拥有各自的功能管理,不互相影响,进而控制各级别管理人员不越权使用本系统。 1 Struts 和 Hibernate 技术 Struts 是基于 MVC( Model-View-Controller)设计模式的一个框架。 MVC设计模式,降低了数据处理和数据显 示之间的耦合性,从而增强了程序的可复用性和易维护性。 Struts 的处理过程如下。 ( 1)通过客户端 JSP 页面与用户进行交互
3、,将页面提交的数据封装到Java Bean 中。 ( 2)通过请求路径查找 Struts.xml 配置文件中 Action 的配置,找到并调用相应的 Action。 ( 3)在 Action 中调用业务逻辑方法处理用户请求。 ( 4)查找相应的 Result,并找到正确的 JSP 页面进行转发,返回给客户端。 Hibernate 是一个开放源代码的对象关系映射框架,它 对 JDBC 进行了非常轻量级的对象封装,使 Java 程序员可以随心所欲地使用面向对象的思维方式,操作关系数据库。 Hibernate 是 Java 应用和关系数据库之间的桥梁,将应用层的对象操作直接转化为数据库的表操作。 H
4、ibernate 可应用在任何使用 JDBC的场合,即可以在 Java客户端程序中使用,也可以在使用 JSP的Web 应用中使用,完成数据的持久化操作。 因此,本文将 Struts和 Hibernate两种框架技术结合起来,通过 Struts降低 MVC各层之间的耦合,增强系统的可维护性;并利用 Hibernate封装数据库操作部分,增强系统的复用性,以形成快速实现 Web应用的有效方案,从而更加高效地完成图书管理系统。 2 图书管理系统总体设计 图书管理系统包括用户管理、图书分类管理、图书管理、读者分类管理、读者管理、借阅管理、归还管理、罚金管理以及动态权限分配等多个模块,如图 1所示。 各
5、功能模块说明如下。 ( 1)图书分类管理包括图书分类添加、图书分类删除、图书分类修改以及图书分类查询。 ( 2)图书管理包括图书添加、图书删除、图书修改、图书查询以及图书封面的上传、 下载。 ( 3)读者分类管理包括读者分类添加、读者分类删除、读者分类修改以及读者分类查询。 ( 4)读者管理包括读者添加、读者删除、读者修改、读者查询以及读者照片的上传、下载。 ( 5)借阅管理包括图书借阅、图书借阅记录删除、图书借阅查询。在图书借阅时,管理人员先统计该读者是否有超期的图书,如果有提示不能借阅,并跳转到相应的缴纳罚金页面,再统计该读者的借阅数量,如果超过最大借阅数量,进行相应提示,否则添加借阅信息
6、,并将当前图书设置为“ 已借 ” 状态。 ( 6)归还管理包括图书归还 、图书归还记录删除、图书归还查询。归还时,如果该书已超期,跳转到相应的缴纳罚金页面,否则修改归还日期为系统当前时间,并将当前图书设置为 “ 可借 ” 状态。 ( 7)罚金管理包括缴纳罚金、罚金删除、罚金查询。罚金的计算公式为:罚金 =超期后每天罚金数 (归还日期 -借阅日期 -最大借阅天数) 3 图书管理系统层次结构 图书管理系统采用 Struts 框架作为开发的框架,采用四层结构, JSP 作为视图层, Action 类与配置文件作为控制层, Business 类作为业务逻辑层,Hibernate 作为数据持 久化层,采
7、用 Mysql 作为数据库。 JSP 传递用户请求到 Action 层, Action 层调用 Business 层进行处理,并返回到相应的 JSP页面进行显示,而 Business 层调用 Hibernate 进行数据处理。 4 图书管理数据库设计 图书管理系统设计一个数据库 BookDB,含有 9 个表,分别是用户表( User Info)、图书分类表( Book Category)、图书表( Book)、读者分类表( Reader Category)、读者表( Reader)、借还表( Borrow)、罚金表( Fine)、功能菜单表( Menu Tree)以及权限分配表( User R
8、ole)。其中,读者分类中含有最大借阅数量、最大借阅天数、超期每天发钱数、用于借阅和罚金时的计算。借还表中有借阅日期和归还日期用于计算借阅时长等。本文设计的系统 ER 图如图 2 所示。 5 图书管理系统实现 图书管理系统在实现各功能模块中都实现了权限检查,并使用过滤器对未经登录而对后台的请求进行了处理,使用户不能绕过登录,并实现了安全退出,进一步增强了系统的安全性。对于每一个显示页面使用 Struts 和Hibernate 结合的方式实 现了分页查询,并使用 Page 类将分页的业务逻辑进行了封装,使每一个页面的分页功能能够统一处理,增强了代码的鲁棒性和可复用性。主要的系统界面实现如图 3 和图 4 所示。 6 结 语 本文设计的图书管理系统实现了图书管理、图书借阅归还等功能,还实现了动态权限分配、安全退出等功能,并在提高工作效率的情况下,增强了系统的安全性。 主要参考文献 唐昌华,时兵,时庆涛 .基于 Struts 和 Hibernate 毕业设计管理系统的设计与实现 J.数字技术与应用, 2012( 11) . 刘艳春,洪晓慧 .Struts 2 框架核心配置文件的研究与应用 J.计算机技术与发展, 2013( 2) . 孙卫琴 .精通 Struts 基于 MVC 的 Java Web 设计与开发 M.北京:电子工业出版社, 2004.