码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis 事务管理

时间:2018-06-02 18:34:28      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:做了   事物   inf   evel   管理   种类型   img   图片   介绍   

mybatis的事务和数据源有着非常密切的联系。上文讲述了mybatis的数据源,本文要讲述的便是mybatis的事物

 

1.事务的分类


我们还是已一段xml配置文件为例

<environments default="development">
  <environment id="development">
    <transactionManager type="JDBC">
      <property name="..." value="..."/>
    </transactionManager>
    <dataSource type="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 事务管理

标签:做了   事物   inf   evel   管理   种类型   img   图片   介绍   

原文地址:https://www.cnblogs.com/xmzJava/p/9126005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!