Mybatis03—commit事务控制

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再根据情况决定是否进行提交,这种方式更常用。因为我们可以根据业务情况来决定提交是否进行提交。

猜你喜欢

转载自blog.csdn.net/weixin_43514899/article/details/107763840