2013-11-28 24 views
0

如何在使用時控制事務處理JdbcTemplate/HibernateTemplateHibernateDaoSupport/JdbcDaoSupport?我曾經檢查源代碼,並沒有找到交易由JdbcTemplate/HibernateTemplateHibernateDaoSupport/JdbcDaoSupport控制的地方。
並在源代碼HibernateDaoSupport/JdbcDaoSupport使用JdbcTemplate/HibernateTemplate,什麼的HibernateDaoSupport/JdbcDaoSupport的作用,什麼是的JdbcTemplate/HibernateTemplate的作用?
爲什麼我們使用JdbcTemplate/HibernateTemplateHibernateDaoSupport/JdbcDaoSupport?似乎所有示例代碼都在使用它們。如果我不想使用它們,比如只使用spring + hibernate,應該使用什麼?
如果我使用JdbcTemplate/HibernateTemplateHibernateDaoSupport/JdbcDaoSupport,我是否仍然需要在xml中配置事務代理?如果我仍然需要在xml中配置事務代理,這意味着我可以將getHibernateTemplate().saveOrUpdate(user)getHibernateTemplate().saveOrUpdate(order)放在一起,並且它們在同一個事務中被調用,對嗎?JdbcTemplate/HibernateTemplate和HibernateDaoSupport/JdbcDaoSupport的彈簧事務處理

回答

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需要更多。

*支持類使訪問模板變得更容易,但不是必須使用。創建一個JdbcTemplate是很容易的,你並不需要擴展JdbcDaoSupport。但你可以,如果你想。有關更多信息,請參閱the reference guide

+0

感謝您的回覆。我不會在新項目中使用這些功能。但是知道答案是很好的,當我不知道的時候它會讓我感到厭煩。那麼任何人都可以更詳細地向我解釋答案嗎? –

+0

我建議參考指南一切都很清楚地解釋在那裏...鏈接已經在帖子中。 –