时间:2011-08-23 12:15:29

标签: java hibernate spring jdbc

我在我的应用程序中正在使用Struts和Spring jdbc模板 我必须在代码中使用Hibernate模板 谁能告诉我为什么要使用Hibernate模板呢? 使用Spring jdbc模板有什么问题?

2 个答案:

答案 0 :(得分:3)

有两个问题:

  • JdbcTemplate与Hibernate

JdbcTemplate对于调用不适合域模型或只是少量数据访问期的简单DAO非常有用。如果您有几个存储过程,它也很有用。如果你有很多存储过程,iBatis更好(Spring也集成了)

Hibernate需要在XML或注释中指定某种形式的映射。但是一旦你通过几种方法超越了几个DAO,Hibernate就有能力统一管理Object到关系映射。

  • HibernateTemplate vs staight SessionFactory hibernate。 通常建议使用SessionFactory.getCurrentSession()API来访问Hibernate。但是HibernateTemplate javadoc提到:
  

可以将此类视为使用原始Hibernate3 Session API(通过SessionFactory.getCurrentSession())的直接替代方法。主要优点是它自动转换为DataAccessExceptions,以及在事务之外使用时能够回退到“自动提交”样式行为的能力。

因此,除非您计划将JDBC与Hibernate混合使用,否则您恰好更喜欢Spring的DataAccessException层次结构,HibernateTemplate将是一个很好的解决方案。但是如果你没有特定的理由使用HibernateTemplate,那么直接使用Hibernate(即使使用Spring TransactionProxyFactoryBean)也是可行的方法。

答案 1 :(得分:2)

使用Spring Template(JDBC,Hibernate)可以节省大量的清理,资源管理和更好的异常处理。查看以下这些链接

http://www.vogella.de/articles/SpringJDBC/article.html

http://static.springsource.org/spring/docs/1.2.x/api/org/springframework/orm/hibernate/HibernateTemplate.html