前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hibernate和Struts2的整合(相关问题的说明)

Hibernate和Struts2的整合(相关问题的说明)

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:07:50
4090
发布2019-01-25 15:07:50
举报

这篇文章就Hibernate和Struts2整合中的相关问题进行详细说明,但是不对整合的过程进行累述。

如果想了解详细过程,请参考这些文章:

Struts 2 + Hibernate Integration Example

Struts 2 + Hibernate Integration With “Full Hibernate Plugin”

笔者是参考这两篇文章进行操作的,文章对操作的过程叙述很详细,此外,在DZone上也有类似的文章:

Struts2 Hibernate Integration Tutorial 中文翻译版

Struts2 CRDU Tutorial中文翻译版

DZone上面这篇文章和上面的文章内容差不多,也是采用了Full Hibernate Plugin插件Hibernate和Struts2的集成,将Hibernate的Session和Trasaction注入到DOA对象中,然后进行数据库的相关操作。

总的来说,集成的方法就两种:

方法一:在Struts2中没有官方的用来和Hibernate框架集成的插件。但是我们可以采用如下的步骤进行:

1. 注册一个自定义的ServletContextListener。

2. 在自定义的ServletContextListener类中,初始化Hibernate的Session并将其存储在ServletContext中。

3. 在Action类中,通过ServletContext获得Hibernate的Session然后进行Hibernate的数据库操作任务。

整个过程可以用如下图表示:

代码语言:javascript
复制
Struts 2 <-- (Servlet Context) ---> Hibernate <-----> Database

这个方法参考Struts 2 + Hibernate Integration Example文章。

方法二:官方虽然没有集成的插件,但是高手在民间。有一个叫做Full Hibernate plugin的插件(点击下载)可以帮助我们很好的完成任务。

具体步骤如下:

1. 将Full Hibernate Plugin的jar包添加到工程路径中。

2. 使用@SessionTarget将Hibernate的Session注入到你的DAO类中,使用@TransactionTarget将Hibernate的Trasaction注入到你的DAO类中。

3. 在struts.xml中将package的extends属性的值由原来的struts-default改为hibernate-default。

图示如下:

代码语言:javascript
复制
Struts 2 <-- (Full Hibernate Plugin) ---> Hibernate <-----> Database

然后你就可以不用关心的Session和Trasaction的创建,已经SessionFactory的销毁等等,只用专注于你的业务逻辑就好了。

但是理想是丰满的,现实是骨干的。下面我说说我使用使遇到的问题。

首先说第二种方法,第二种利用Full Hibernate plugin,确实是很好的。但是你进入Full Hibernate plugin的主页会发现这个插件是2010最后一次更新的,亲,现在都2015年了。所以你的Hibernate和Struts要能和Full Hibernate plugin协同工作,Hibernate必须是3.x, 要不然会各种报错,Hibernate这么低的版本,有时候又会对高版本的数据库不支持。所以我在这种方案里挣扎了好久最后放弃了,决定用第二种方案。

方案一不用插件,自己写这样的话功能都能实现。但是有一些不好的地方就是你必须没有都要手动创建Session和手动提交。最后我用第一种方案实验成功。

希望说的不对的地方,请指出,初次使用Hibernate和Struts2。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年01月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档