Spring hibernate模板何时使用,为什么?

art*_*mka 48 java spring hibernate

问候,目前正在开发小型Web服务应用程序,其中Web服务(使用CXF + Spring)的响应处理并保存到数据库.使用数据库我正在使用Hibernate(3.5).在Web上浏览一些Hibernate + Spring示例,我经常可以看到HibernateTemplate的用法,所以我对这一刻感到有点困惑,并想问:

你在Hibernate3应用程序中使用HibernateTemplate吗?什么时候HibernateTemplate可以让您的开发生活更美好,并且根据我可以决定的点,我是否需要使用它?

谢谢.

Sea*_*oyd 53

所有spring模板(hibernate,jdbc,rest,jpa等)都有相同的优点和缺点:

Pro:他们为您执行常见的设置例程,让您跳过样板并专注于您想要的逻辑.

Con:您将应用程序紧密耦合到弹簧框架.出于这个原因,Spring建议HibernateTemplate不再使用.

具体来说,HibernateTemplate为您做的是在代码执行后自动打开和关闭会话以及提交或回滚事务.但是,所有这些都可以使用Spring的声明式事务管理以面向方面的方式实现.

参考:


更新:

截至Spring 3.1(及更新版本),HibernateTemplate已被删除.有关当前建议的使用模式,请参阅Hibernate.

  • 在Spring 3.1的Hibernate 4支持下,HibernateTemplate不再仅仅是"不推荐"; 它完全被淘汰了.请参阅https://jira.springsource.org/browse/SPR-8096 (13认同)
  • Alef Arendsen在官方春季博客上发表的模板更少http://blog.springsource.com/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor-jpatemplate/ [Spring试图成为非侵入性,这是另一个很好的例子!] (2认同)

Mau*_*tha 11

让我澄清一下,Spring的HibernateTemplate将不会得到支持,这意味着Hibernate 4+版本不支持HibernateTemplate.因此建议使用Sean建议的声明式事务管理.

  • 阅读此内容的任何人都应该注意到它是在我原来的答案之后的两年.千里眼不在我的工具箱中. (2认同)

duf*_*ymo 5

HibernateTemplate为您提供了许多内容,让您的生活更轻松.

您是否可以选择使用它.就此而言,您可以在没有Hibernate的情况下使用数据库.Spring的JDBC东西非常好.您可能会发现无需学习Hibernate就可以更轻松地完成问题.