APP下载

基于Struts+Spring+Hibernate框架的图书借阅系统设计

2016-08-29湖南城市学院图书馆曹异卿

电子世界 2016年15期
关键词:容器检索架构

湖南城市学院图书馆 曹异卿



基于Struts+Spring+Hibernate框架的图书借阅系统设计

湖南城市学院图书馆曹异卿

图书借阅系统是图书馆信息系统的重要组成部分,本文设计了一个基于Struts+Spring+Hibernate框架的图书借阅系统,系统基于轻量级的SSH框架设计,具有很高的灵活性和可扩展性。系统实现了Web方式的图书借阅系统,与传统C/S借阅系统相比,对客户端环境没有要求,并且实现了学生通过Internet来远程检索图书功能。

图书借阅系统;Struts;Spring;Hibernate

引言

目前,国内的高校图书馆大都实现了日常业务的自动化集成管理,绝大多数图书馆都购买或建立了数据库管理信息系统。一方面,随着目前高等院校的扩招,图书馆的读者成千上万,他们性别不同,专业不同,阅读兴趣和爱好也各不相同。另一方面,目前高等院校图书馆的购书经费都比较紧张,面对目前出版商和书店堆积如山的图书,如何了解各个专业学生的借阅兴趣,充分利用有限的购书经费采购到令读者满意的图书,提高服务的质量等,均日益成为图书馆管理层一个重要的问题。图书馆集成管理系统每天都会产生大量的统计数据和表单,它们对图书馆了解读者的借阅兴趣、图书采购、信息咨询等业务都有着很强的指导作用。如何充分利用这些日益增长的大量数据,从中找到有用的信息,迫切要求一种强有力的数据采集和处理工具介入到图书馆自动化系统中来,为图书馆工作提供新的技术和决策管理支持,而数据仓库和联机分析处理正是这样一种新兴的技术。另外,从教与学的角度来考虑,通过对学生大量借阅数据的分析,还可以了解学生课下对各个学科的学习情况,从而对学生的学习起到督促的作用[1]。

图书借阅系统作为图书馆的主要信息系统,不仅要实现图书检索、借阅功能,还要完成图书的库存管理功能。图书管理系统可以采用目前的各种流行软件开发架构实现,如ASP.NET和JSP等,针对图书馆的需求,选择了性能比较好,可扩展性高的Struts+Spring+Hibernate结合JSP技术进行实现。

1.系统架构设计

数据库采用Microsoft SQL Server 2005,包括图书类型库表、书目库表、借书信息库表、部门信息库表、图书管理员库表、借阅人库表、借阅期限库表、归还状态库表。

Struts/Spring/Hibernate集成框架是Struts、Spring和Hibernate三种技术的有机融合,是目前应用最广泛的Java EE架构。在Struts/Spring/ Hibernate集成框架中,Struts的作用是提供MVC模型,将界面、业务逻辑和数据分离,并提供一个高可扩展的架构。Spring作为依赖注入的容器,将项目中的构建进行粘结。而Hibernate提供了一个抽象的数据服务视图,将用户对数据库的访问进行高度抽象。[2]

Struts是MVC模式的一种优良设计,Struts对Model,View和Controller都提供了对应的组件[3]。ActionServlet是Struts的核心控制器,负责拦截来自用户的请求。Action通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示,如图1所示。

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。[4]从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

图1 Struts的系统架构

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。[5]Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/ JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

在Struts+Spring+Hibernate框架中,利用Sturts来实现MVC模式,使用Spring来实现容器,使用Hibernate来访问数据库,给系统开发带来了前所未有的帮助,集成后的系统架构如图2所示。

图2 系统架构设计

2.系统程序设计

数据库访问公共代码设计:

面向对象的程序设计能够有效地减少代码冗余,提高编程效率。在系统设计中,除了采用面向对象的程序设计外,还对公共代码进行了提取,编写公共代码模块,以提高系统的复用程度,基本数据库访问就采用了复用技术,BaseHbmDAO的程序如下。

public class BaseHbmDAO

public BaseHbmDAO()

autoClose = true;

isTransaction = false;

……

public void remove(Object obj)

throws DAOException

Transaction trans = null;

try

trans = ses.beginTransaction();

ses.delete(obj);

trans.commit();

catch(Exception e)

……

finally

……

BookAction的实现如下:

HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {

BookActionForm form = (BookActionForm) actionForm;

BookLogic logic = new BookLogic();

logic.setForm(form);

if(form.getOperation().equals("delete"))

logic.deleteBook();

form.setOperation("display");

if(form.getOperation().equals("save"))

logic.saveBook();

form.setOperation("display");

if(form.getOperation().equals("add"))

logic.addBook();

form.setOperation("display");

logic.closeDAO();

return actionMapping.findForward("book");

logic.getBooks();

logic.closeDAO();

return actionMapping.findForward("book");

3.总结

基于Struts+Spring+Hibernate的图书借阅系统提高了图书借阅的效率,采用轻量级的系统架构,让系统不仅在实现速度上有了提升,而且在可用性、可扩展性和灵活性上面有了提高。系统不仅能实现图书借阅功能,而且实现了学生通过互联网进行书籍检索,节约了学生到图书馆检索的时间,提高了工作效率。

[1]刘冰荣.基于微信的个性化图书借阅平台构建[J].图书馆学刊,2014,12:117-119.

[2]丁夷,金永贤.基于Struts+Spring+Hibernate框架的手机图书馆服务系统[J].大学图书馆学报,2011,01:77-82.

[3]薛峰,梁锋,徐书勋,王彪任.基于Spring MVC框架的Web研究与应用[J].合肥工业大学学报(自然科学版),2012,03:337-340.

[4]万东.基于Struts+Hibernate+Spring的轻量级J2EE框架[J].现代电子技术,2011,16:39-41.

[5]李洋,孙永维,许冰,王英双.基于Ajax,Struts,Hibernate和Spring的J2EE架构[J].吉林大学学报(信息科学版),2011,06:576-584.

湖南城市学院科技计划项目(项目名称:开放式图书馆数字资源检索网络优化研究,项目编号:2014xj34)。

曹异卿(1979—),女,大学本科,助理工程师,现供职于湖南城市学院图书馆,研究方向:情报学,计算机应用。

猜你喜欢

容器检索架构
基于FPGA的RNN硬件加速架构
容器倒置后压力压强如何变
功能架构在电子电气架构开发中的应用和实践
难以置信的事情
基于云服务的图书馆IT架构
WebGIS架构下的地理信息系统构建研究
专利检索中“语义”的表现
取米
国际标准检索
国际标准检索