基于Struts和Hibernate的图书管理系统设计与实现

2017-10-30 11:50唐昌华陈坚李洪亮
中国管理信息化 2017年20期

唐昌华+陈坚+李洪亮

[摘 要]本文針对高校图书馆存在的问题,采用Struts和Hibernate技术设计实现图书管理系统,满足校园图书馆对图书管理的需求。该系统采用B/S结构,使用JSP开发前台网页,后台使用Hibernate对Mysql数据库进行数据操作。重点从总体框架、层次结构、数据库方面,对图书管理系统进行设计,并对系统进行测试,结果显示系统符合预期要求,提高了图书管理人员的工作效率。

[关键词]图书管理系统;Struts;Hibernate

doi:10.3969/j.issn.1673 - 0194.2017.20.095

[中图分类号]G250.7 [文献标识码]A [文章编号]1673-0194(2017)20-0-02

0 引 言

本文设计并实现了图书管理系统,以能够完成图书、读者等基本信息的录入与查询,实现图书的借阅与归还,并能通过动态的权限分配,使管理人员拥有各自的功能管理,不互相影响,进而控制各级别管理人员不越权使用本系统。

1 Struts和Hibernate技术

Struts是基于MVC(Model-View-Controller)设计模式的一个框架。MVC设计模式,降低了数据处理和数据显示之间的耦合性,从而增强了程序的可复用性和易维护性。Struts的处理过程如下。

(1)通过客户端JSP页面与用户进行交互,将页面提交的数据封装到Java Bean中。

(2)通过请求路径查找Struts.xml配置文件中Action的配置,找到并调用相应的Action。

(3)在Action中调用业务逻辑方法处理用户请求。

(4)查找相应的Result,并找到正确的JSP页面进行转发,返回给客户端。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使Java程序员可以随心所欲地使用面向对象的思维方式,操作关系数据库。Hibernate是Java应用和关系数据库之间的桥梁,将应用层的对象操作直接转化为数据库的表操作。Hibernate可应用在任何使用JDBC的场合,即可以在Java客户端程序中使用,也可以在使用JSP的Web应用中使用,完成数据的持久化操作。

因此,本文将Struts和Hibernate两种框架技术结合起来,通过Struts降低MVC各层之间的耦合,增强系统的可维护性;并利用Hibernate封装数据库操作部分,增强系统的复用性,以形成快速实现Web应用的有效方案,从而更加高效地完成图书管理系统。

2 图书管理系统总体设计

图书管理系统包括用户管理、图书分类管理、图书管理、读者分类管理、读者管理、借阅管理、归还管理、罚金管理以及动态权限分配等多个模块,如图1所示。

各功能模块说明如下。

(1)图书分类管理包括图书分类添加、图书分类删除、图书分类修改以及图书分类查询。

(2)图书管理包括图书添加、图书删除、图书修改、图书查询以及图书封面的上传、下载。

(3)读者分类管理包括读者分类添加、读者分类删除、读者分类修改以及读者分类查询。

(4)读者管理包括读者添加、读者删除、读者修改、读者查询以及读者照片的上传、下载。

(5)借阅管理包括图书借阅、图书借阅记录删除、图书借阅查询。在图书借阅时,管理人员先统计该读者是否有超期的图书,如果有提示不能借阅,并跳转到相应的缴纳罚金页面,再统计该读者的借阅数量,如果超过最大借阅数量,进行相应提示,否则添加借阅信息,并将当前图书设置为“已借”状态。

(6)归还管理包括图书归还、图书归还记录删除、图书归还查询。归还时,如果该书已超期,跳转到相应的缴纳罚金页面,否则修改归还日期为系统当前时间,并将当前图书设置为“可借”状态。

(7)罚金管理包括缴纳罚金、罚金删除、罚金查询。罚金的计算公式为:罚金=超期后每天罚金数×(归还日期-借阅日期-最大借阅天数)

3 图书管理系统层次结构

图书管理系统采用Struts框架作为开发的框架,采用四层结构,JSP作为视图层,Action类与配置文件作为控制层,Business类作为业务逻辑层,Hibernate作为数据持久化层,采用Mysql作为数据库。JSP传递用户请求到Action层,Action层调用Business层进行处理,并返回到相应的JSP页面进行显示,而Business层调用Hibernate进行数据处理。

4 图书管理数据库设计

图书管理系统设计一个数据库BookDB,含有9个表,分别是用户表(User Info)、图书分类表(Book Category)、图书表(Book)、读者分类表(Reader Category)、读者表(Reader)、借还表(Borrow)、罚金表(Fine)、功能菜单表(Menu Tree)以及权限分配表(User Role)。其中,读者分类中含有最大借阅数量、最大借阅天数、超期每天发钱数、用于借阅和罚金时的计算。借还表中有借阅日期和归还日期用于计算借阅时长等。本文设计的系统ER图如图2所示。

5 图书管理系统实现

图书管理系统在实现各功能模块中都实现了权限检查,并使用过滤器对未经登录而对后台的请求进行了处理,使用户不能绕过登录,并实现了安全退出,进一步增强了系统的安全性。对于每一个显示页面使用Struts和Hibernate结合的方式实现了分页查询,并使用Page类将分页的业务逻辑进行了封装,使每一个页面的分页功能能够统一处理,增强了代码的鲁棒性和可复用性。主要的系统界面实现如图3和图4所示。

6 结 语

本文设计的图书管理系统实现了图书管理、图书借阅归还等功能,还实现了动态权限分配、安全退出等功能,并在提高工作效率的情况下,增强了系统的安全性。

主要参考文献

[1]唐昌华,时兵,时庆涛.基于Struts和Hibernate毕业设计管理系统的设计与实现[J].数字技术与应用,2012(11).

[2]刘艳春,洪晓慧.Struts 2框架核心配置文件的研究与应用[J].计算机技术与发展,2013(2).

[3]孙卫琴.精通Struts基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.endprint