MyBatis事务相关心得

使用过程中发现,对某条记录update,如果session未commit,则其他session对该记录无法写(会阻塞),但是对别的记录是可以写的。感觉是行级别的锁。

如果设置隔离级别为Serializable,则就算是对该表其他记录操作也是抛异常的,感觉是表级别的锁。

但是几个隔离级别还是不懂。

autoCommit=false,没有执行commit(),仅执行close(),会发生什么

困扰许久的问题终于找到了答案:

结论:autoCommit=false,但是没有手动commit,在sqlSession.close()时,Mybatis会将事务进行rollback()操作,然后才执行conn.close()关闭连接。

我的理解:在autoCommit = false的情况下,不commit,事务是不会提交的,就算不调用rollback,也是可以的。

https://my.oschina.net/zudajun/blog/666764

发表评论

电子邮件地址不会被公开。 必填项已用*标注