Mybatis的事务提交方式

Mybatis 框架因为是对 JDBC 的封装,所以 Mybatis 框架的事务控制方式,本身也是用 JDBC
setAutoCommit() 方法来设置事务提交方式的。
 
Mybatis的事务提交方式_第1张图片
这是我们的 Connection 的整个变化过程,通过分析我们能够发现之前的 CUD 操作过程中,我们都要手动进 行事务的提交(session.commit()),原因是 setAutoCommit() 方法,在执行时它的值被设置为 false 了,所以我们在 CUD 操作中, 必须通过 sqlSession.commit() 方法来执行提交操作。
通过上面的研究和分析,现在我们一起思考,为什么 CUD 过程中必须使用 sqlSession.commit() 提交事
务?主要原因就是在连接池中取出的连接,都会将调用 connection.setAutoCommit(false) 方法,这样我们
就必须使用 sqlSession.commit() 方法,相当于使用了 JDBC 中的 connection.commit() 方法实现事务提
交。

 

 
Mybatis的事务提交方式_第2张图片

 

 

我们发现,此时事务就设置为自动提交了,同样可以实现 CUD 操作时记录的保存。虽然这也是一种方式,但就 编程而言,设置为自动提交方式为 false 再根据情况决定是否进行提交,这种方式更常用。因为我们可以根据业务 情况来决定提交是否进行提交

 

你可能感兴趣的:(Mybatis)