84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
用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进去
只能说明,事务没提交罢了
妥妥的事务问题。哥们事务提交了就能看到了。