84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
用mybatis向mysql数据库插入一条数据后,然后查询出来。数据库里没有这条数据,但是程序通过查询语句却能查到这条数据
程序显示结果:
但是数据库就没能找到这条数据
认证高级PHP讲师
压根就不是缓存,既不是数据库,也不是mybatis。
数据库很好理解,你没有commit的数据只有在你当前的transaction中可以查到,其他客户端是查不到的,如果查到了岂不是脏读了吗?
mybatis的缓存很简单,默认insert,delete,update都会清空缓存,只有在select的时候才会在缓存里放东西。
所以答案很明显了,就是你auto commit关闭的问题,没有把更新操作commit到数据库,所以只能在你自己这里查到,你开个客户端却查不到
你的图:
会不会是你事务的原因?因为你插入了以后立马就查询了,事务还没提交?
程序可能使用了缓存机制,你插入的数据可能在缓存中,还没有到数据库,你百度搜搜数据库缓存
我觉得是没有commit进去
只能说明,事务没提交罢了
妥妥的事务问题。哥们事务提交了就能看到了。
压根就不是缓存,既不是数据库,也不是mybatis。
数据库很好理解,你没有commit的数据只有在你当前的transaction中可以查到,其他客户端是查不到的,如果查到了岂不是脏读了吗?
mybatis的缓存很简单,默认insert,delete,update都会清空缓存,只有在select的时候才会在缓存里放东西。
所以答案很明显了,就是你auto commit关闭的问题,没有把更新操作commit到数据库,所以只能在你自己这里查到,你开个客户端却查不到
你的图:
会不会是你事务的原因?因为你插入了以后立马就查询了,事务还没提交?
程序可能使用了缓存机制,你插入的数据可能在缓存中,还没有到数据库,你百度搜搜数据库缓存
我觉得是没有commit进去
只能说明,事务没提交罢了
妥妥的事务问题。哥们事务提交了就能看到了。