mybatis事务未提交为什么能查询到insert的数据?

图片说明

如图,insert方法插入一条数据,selALL方法查询数据,我还没有commit,仍然能查询到刚刚insert的数据
请问这其中的原理是什么?事务提交前插入的数据存放在哪?为什么能被select取到?

2个回答

在运行的时候,查询和新增是在同一个sqlsession下,而这个sqlsession又处于同一个事务当中,同一个事务,前面做了新增操作是可以查的到数据的,即使没有提交,但是如果你的程序不进行commit的话执行完成后去数据库查是不会有数据的,因为这时候和之前是处于不同的事务环境当中

在一个事务里面肯定这样啊,就像你在pl/sql同一个窗口先插入不提交,然后查询一个道理(如果你另开一个窗口查询肯定是查不出来的),你把commit去掉然后到数据库查询肯定是没有插入

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐