Mybatis提交事务
@After//在测试方法执行完成之后执行
public void destory() throws Exception {
//事务的提交
session.commit();
//7.释放资源
session.close();
in.close();
}
观察在它在控制台输出的结果:
这是我们的Connection的整个变化过程,通过分析我们能够发现之前的CUD(增加、更新、删除)操作过程中,我们都要手动进行事务的提交,原因是setAutoCommit()方法,在执行时它的值被设置为false了,所以我们在CUD操作中,必须通过sqlSession.commit()
方法来执行提交操作。
Mybatis自动提交事务的设置
为什么CUD过程中必须使用sqlSession.commit()提交事务?
主要原因就是在连接池中取出的连接,都会将调用connection.setAutoCommit(false)
方法,这样我们就必须使用sqlSession.commit()方法,相当于使用了JDBC中的connection.commit()方法实现事务提交。
那么我们接下来尝试不进行手动提交来实现CUD操作。

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