耶律妙月
2018-10-31 08:45
采纳率: 100%
浏览 5.7k
已采纳

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

图片说明

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wsl719583022 2018-11-22 07:21
    已采纳

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

    已采纳该答案
    打赏 评论
  • 才沐木 2018-10-31 09:25

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

    打赏 评论

相关推荐 更多相似问题