使用JdbcTemplate
/ HibernateTemplate
和HibernateDaoSupport
/ JdbcDaoSupport
时如何控制交易?我曾经检查过源代码,但没有找到JdbcTemplate
/ HibernateTemplate
和HibernateDaoSupport
/ JdbcDaoSupport
控制交易的位置。
在源代码HibernateDaoSupport
/ JdbcDaoSupport
中使用的是JdbcTemplate
/ HibernateTemplate
,HibernateDaoSupport
/ JdbcDaoSupport
的作用是什么,以及{的作用是什么{1}} / JdbcTemplate
?
为什么我们使用HibernateTemplate
/ JdbcTemplate
和HibernateTemplate
/ HibernateDaoSupport
?似乎所有示例代码都在使用它们。如果我不想使用它们,我应该使用什么,例如只使用spring + hibernate?
如果我使用JdbcDaoSupport
/ JdbcTemplate
和HibernateTemplate
/ HibernateDaoSupport
,我还需要在xml中配置事务代理吗?如果我仍然需要在xml中配置事务代理,这意味着我可以将JdbcDaoSupport
和getHibernateTemplate().saveOrUpdate(user)
放在一起,并且它们在同一个事务中被调用,这是对的吗?
答案 0 :(得分:0)
首先请忘记HibernateTemplate
和HibernateDaoSupport
这些类自hibernate 3.0.1(2006年的某个地方发布)以来应被视为已弃用。您应该基于普通的hibernate API创建daos /存储库,如Spring Reference Guide中所述。 (JpaTemplate
和JpaDaoSupport
)也是如此。
JdbcTemplate
(以及所有其他*模板类)旨在使其更容易使用底层技术。曾几何时,Hibernate(< 3.0.1)也需要它,现在它不是。
JdbcTemplate
使得使用纯JDBC代码变得更容易。您不必获取连接,创建(Prepared)Statement
,添加参数,执行查询,迭代结果集并转换ResultSet
。使用JdbcTemplate
大部分内容都是隐藏的,其中大部分都可以用1到3行代码编写,而普通的JDBC则需要更多代码。
* Support类使得访问模板变得更容易,但不是必须使用的。创建JdbcTemplate
非常简单,您不需要扩展JdbcDaoSupport
。但如果你愿意,你可以。有关详细信息,请参阅the reference guide。