spring ibatis事務乙個誤區分析

2021-09-01 13:48:04 字數 922 閱讀 5101

先看段經典的ibatis spring配置,注意我的配置中沒有配置spring的宣告式事務:

面對上面的配置,看下面的**有什麼問題:

try

catch(exception e) catch (exception ex)

}

表面上沒有問題,錯!問題很大~~~看下面sqlmapclientfactorybean源**

再看下externaltransactionconfig**:

public class externaltransactionconfig extends basetransactionconfig

//...省略

}

再看externaltransaction:

public class externaltransaction implements transaction

public void rollback() throws sqlexception, transactionexception

}

到此真相大白,事務沒有任何作用~~

也就是說如果使用spring整合管理ibatis,ibatis的事務將完全交由外部spring進行管理,ibatis不作為!

為什麼有時候似乎資料庫裡面也插入了資料?哦,請看下面的屬性配置:

這個屬性的配置起了關鍵作用,如果配置為true,會自行提交,這也就不難解釋為什麼有資料了,而一旦配置成false,資料卻一條也沒有了~•~•

spring ibatis 配置事務

下面具體的說明一下事務配置.propagation required,exception propagation required,exception propagation required,exception propagation required,exception propagation ...

spring ibatis事務配置

propagation required propagation required propagation required,readonly spring的transactionattributes的配置 propagation required 支援當前事務,如果當前沒有事務,就新建乙個事務。這...

Spring Ibatis批量效能

1.按需取資料,減少網路開銷。a 表 有 100 多個字段,儲存在資料庫 a 上 id property1 property2 property120 b 表 只有 10 個字段,儲存在資料庫 b 上 id property1 property2 property10 要從 a 表中查詢一些資料在插...