Mybatis事务管理机制<transactionManager>

一、概念:

    多个操作同时完成,或同时失败称为事务处理。 事务有四个特性:一致性,持久性,原子性,隔离性。

二、 在MyBatis框架中设置事务:

    Mybatis中提供了两种事务管理机制:
<!--配置事务管理器
属性:
     type:指定事务管理的方式{
                   "JDBC":事务的控制交给程序员处理
                   "MANAGED":事务的控制由容器(Spring)来管理
     }
-->
<transactionManager type="JDBC"></transactionManager>

三、详解两种事务管理机制:

1. JDBC:

    使用JDBC管理事务的时候,底层创建事务管理器对象:JdbcTransaction对象。 程序员手动提交:
sqlSession = factory.openSession();
//默认sqlSession = factory.openSession(false)手动提交事务。
//如果事务管理器是JDBC,且传参是false,底层实际上会执行:connection.setAutoCommit(false);
sqlSession.commit();
//底层实际上执行的是connection.commit();
    程序员设置自动提交:
sqlSession = factory.openSession(true);
//这种方式下程序每执行一行sql语句就提交一次,底层相当于没有事务机制的JDBC代码,
//即没有connection.setAutoCommit(false)这行代码,所以根本不用commit(),
//换句话说,这种方式并没有事务的参与,没有开启事务。

2. MANAGED:

经验分享 程序员 微信小程序 职场和发展