Mybatis 事務管理
阿新 • • 發佈:2018-06-02
工廠 height nag 發生 配置 配置文件 pan drive alt
mybatis的事務和數據源有著非常密切的聯系。上文講述了mybatis的數據源,本文要講述的便是mybatis的事物
1.事務的分類
我們還是已一段xml配置文件為例
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="..." value="..."/> </transactionManager> <dataSourcetype="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
xml的transactionManager就是mybatis事務的類型。mybatis事務總共有兩種類型。
1.JDBC:使用JDBC來管理實務
2.MANAGED:使用WEB容器來管理事務
2.事務的創建
事物的創建和Datasource和相似,在系統解析xml的時候生成一個工廠類,當需要生成一個sqlssesion的時候通過工廠類生成一個transaction對象,這個對象被executor對象持有。
生成事務工廠類
生成事務
3.事務的提交
我們以一次sqlssesion.commit()為起點。來看下commit的內部究竟發生了什麽(這裏我們已JDBCTransaction為例)
1.調用executor的commit
2.調用transaction的commit
3.1JDBCTransaction調用connection的commit
3.1ManagedTransaction調用connection的commit
由此可見JDBCTransaction其實只是對Connection做了包裝。而ManagedTransaction什麽都沒做。
以上就是mybatis的事務介紹。
Mybatis 事務管理