jdbctemplate事務(wù)控制 spring事務(wù)TransactionTemplate怎樣實(shí)現(xiàn)多次提交?
spring事務(wù)TransactionTemplate怎樣實(shí)現(xiàn)多次提交?這表示數(shù)據(jù)庫已執(zhí)行SQL語句。如果沒有事務(wù)控制,spring將不會(huì)提交。如果更新失敗,這是正常的。如果不控制spring事務(wù),您
spring事務(wù)TransactionTemplate怎樣實(shí)現(xiàn)多次提交?
這表示數(shù)據(jù)庫已執(zhí)行SQL語句。如果沒有事務(wù)控制,spring將不會(huì)提交。如果更新失敗,這是正常的。如果不控制spring事務(wù),您的異常將不會(huì)影響SQL的執(zhí)行。
此外,添加、刪除和修改本身必須有事務(wù)。默認(rèn)情況下,JDBC自動(dòng)提交事務(wù)。在使用spring事務(wù)之后,spring提交它們。配置事務(wù)后,是否有事務(wù)對(duì)您沒有影響,除非您不操作數(shù)據(jù)庫。如果不進(jìn)行操作,只需更改方法名稱。如果你想在沒有交易的情況下運(yùn)作,那是不可能的。
請(qǐng)問DAO層采用JdbcTemplate操作數(shù)據(jù),如何在Service層控制事務(wù)?
Dao層使用jdbctemplate進(jìn)行數(shù)據(jù)庫操作。服務(wù)層調(diào)用Dao層方法。因?yàn)橐粋€(gè)服務(wù)方法可能需要調(diào)用多個(gè)Dao對(duì)象的方法,所以在服務(wù)層需要事務(wù)控制。出于許多原因,您需要使用編程事務(wù)(現(xiàn)在是transactiontemplate)。但是,有一個(gè)問題:只有datasourcetransactionmanager用于創(chuàng)建transactiontemplate對(duì)象的數(shù)據(jù)源和Dao對(duì)象用于創(chuàng)建jdbctemplate對(duì)象的數(shù)據(jù)源是同一個(gè)對(duì)象時(shí),才能事務(wù)模板.execute()方法。目前,我想到以下設(shè)計(jì):1。Basicdao類是所有Dao類的父類。它提供了一個(gè)靜態(tài)變量數(shù)據(jù)源來為所有Dao類創(chuàng)建jdbctemplate對(duì)象。同時(shí),提供datasource的get方法,在service方法中創(chuàng)建datasourcetransactionmanager對(duì)象。