JdbcTemplate / HibernateTemplate和HibernateDaoSupport / JdbcDaoSupport的spring事务

时间:2013-11-28 02:42:32

标签: spring

使用JdbcTemplate / HibernateTemplateHibernateDaoSupport / JdbcDaoSupport时如何控制交易?我曾经检查过源代码,但没有找到JdbcTemplate / HibernateTemplateHibernateDaoSupport / JdbcDaoSupport控制交易的位置。
在源代码HibernateDaoSupport / JdbcDaoSupport中使用的是JdbcTemplate / HibernateTemplateHibernateDaoSupport / JdbcDaoSupport的作用是什么,以及{的作用是什么{1}} / JdbcTemplate
为什么我们使用HibernateTemplate / JdbcTemplateHibernateTemplate / HibernateDaoSupport?似乎所有示例代码都在使用它们。如果我不想使用它们,我应该使用什么,例如只使用spring + hibernate? 如果我使用JdbcDaoSupport / JdbcTemplateHibernateTemplate / HibernateDaoSupport,我还需要在xml中配置事务代理吗?如果我仍然需要在xml中配置事务代理,这意味着我可以将JdbcDaoSupportgetHibernateTemplate().saveOrUpdate(user)放在一起,并且它们在同一个事务中被调用,这是对的吗?

1 个答案:

答案 0 :(得分:0)

首先请忘记HibernateTemplateHibernateDaoSupport这些类自hibernate 3.0.1(2006年的某个地方发布)以来应被视为已弃用。您应该基于普通的hibernate API创建daos /存储库,如Spring Reference Guide中所述。 (JpaTemplateJpaDaoSupport)也是如此。

JdbcTemplate(以及所有其他*模板类)旨在使其更容易使用底层技术。曾几何时,Hibernate(< 3.0.1)也需要它,现在它不是。

JdbcTemplate使得使用纯JDBC代码变得更容易。您不必获取连接,创建(Prepared)Statement,添加参数,执行查询,迭代结果集并转换ResultSet。使用JdbcTemplate大部分内容都是隐藏的,其中大部分都可以用1到3行代码编写,而普通的JDBC则需要更多代码。

* Support类使得访问模板变得更容易,但不是必须使用的。创建JdbcTemplate非常简单,您不需要扩展JdbcDaoSupport。但如果你愿意,你可以。有关详细信息,请参阅the reference guide