iBatis與Spring整合時的批處理釋疑

2021-04-12 17:13:25 字數 712 閱讀 2578

在看ibatis的文件時,其描述的典型批處理語句如下:

try finally

這段語句,如果由ibatis自己來管理事務,相信大家沒有使用任何的疑慮。但是,如果已經由spring來託管事務,這段語句是不是有問題呢????

其實,我開始的時候這種疑問是非常強烈的,所以,有時我會這樣寫:

sqlmap.startbatch();

// … execute statements in between

int rowsupdated = sqlmap.executebatch(); //optional

但是在執行時發現,批語句根本不起作用,後來檢視源**才知道:ibatis不管事務由誰來管理,批處理的方式是完全一致的!

那麼sqlmap.starttransaction();sqlmap.committransaction();sqlmap.endtransaction();這三個語句難道不會對全域性事務有任何影響嗎??答案是:沒有任何影響!

classpath:sqlmapconfig-$.xml

檢視sqlmapclientfactorybean的原始碼,發現

private class transactionconfigclass = externaltransactionconfig.class;

public void afterpropertiesset() throws exception

});

ibatis與spring的整合

sqlmapconfig.xml配置非常簡單 usermap.xml配置如下 select from user select u.id,u.name,s.score from user u right join score s on u.id s.uid select from user where...

Spring整合Ibatis事務實現

最近看 spring實戰 的書,每看一章寫乙個簡單的例子記錄一下,這次是spring事務實現,我在spring配置文件裡面通過spring的aop切面程式設計,給業務邏輯的所有方法配置了事務,使用預設的隔離和傳播機制,具體是什麼機制後續作答。然後測試業務邏輯方法如果遇到執行期異常是否會回滾sql語句...

Spring整合JDBC與Spring管理事務

1.開始註解模式 2.註解切面 再通知上面加上乙個註解 aspect aspect public class myadvice 再通知的方法上面加上切點 五種 before 表示式 afterreturning around after afterthrowing before myadvice.p...