【问题标题】:spring jdbc over hibernatespring jdbc over hibernate
【发布时间】:2011-08-23 12:15:29
【问题描述】:

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

【问题讨论】:

  • jdbctemplate 没有什么问题,只是你不能在 Hibernate 中使用它。显然你有使用 Hibernate 的要求。

标签: java hibernate spring jdbc


【解决方案1】:

有两个问题:

  • JdbcTemplate 与休眠

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

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

  • HibernateTemplate 与 sight SessionFactory 休眠。 通常建议使用 SessionFactory.getCurrentSession() API 来访问 Hibernate。但是 HibernateTemplate javadoc 提到:

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

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

【讨论】:

    【解决方案2】:

    使用 Spring 模板(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

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2017-07-17
      • 2011-04-28
      • 2012-08-04
      • 2011-06-07
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多