簡介:
在實際的業務中,我們往往需要將一些db的寫操作繫結到一起形成乙個「事務」,做到要麼全部成功,要麼全部失敗,一半成功一半失敗往往會造成一些意想不到的業務問題,處理起來也非常麻煩,尤其是和銀行、金融相關的處理更是如此。
在spring中要封裝乙個事務的操作,非常簡單,只需要如下幾步即可:
將 org.springframework.transaction.support.transactiontemplate 和 org.springframework.jdbc.datasource.datasourcetransactionmanager 這兩個類的bean注入。
1class="org.springframework.transaction.support.transactiontemplate" >23
4class="org.springframework.jdbc.datasource.datasourcetransactionmanager">56
1 @resource(name="transactiontemplate")2private transactiontemplate transactiontemplate;
本例將根據id刪除計畫和根據計畫id刪除規則兩個操作繫結到一起,以事務的方式執行。
1@override
2public resultdelplan(long
planid) 67
private
boolean delplan(final
intplanidint)
15});
16 } catch
(runtimeexception e)
20return
true
;21 }
好了,事務的處理基本就這樣,還算比較簡單易用,經常還需要使用到sql的批量處理功能。頻繁的i/o會導致一系列問題,所以在有資料庫的操作時,要計量少地使用i/o操作。批量執行僅一次i/o操作,比單條執行效率高多了。如下**所示,我們在批量向資料庫中插入資料時,可以這樣使用執行器批量執行,還可以控制每次允許插入的條數。
1@override
2public long batchinsert(final listpostattrscenerellist)
11executor.executebatch();
12return
postattrscenerellist.size();13}
14});
15 }
累積效應遠比一時的靈感重要,哪怕再小的知識點,經時累月,用心經營,也能形成壁壘,許久沒寫東西,深感慚愧。
spring事務處理
一 spring 事務處理 1 事務的處理也交給了 spring 來管理,要在 檔案中上配置事務管理類 實施事務管理的 bean class org.springframwork.orm.hibernate3.hibernatetransactionmanager 它是通過 sessionfacto...
spring事務處理
xml 實施事務管理的bean bean id transactionmanager class org.springframwork.orm.hibernate3.hibernatetransactionmanager property name sessionfactory refbean se...
spring事務處理
一.spring事務分為宣告式事務和程式設計式事務 二 程式設計式事務可以作用在 庫,示例 autowired private org.springframework.jdbc.datasource.datasourcetransactionmanager transactionmanager pu...