用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進去
只能說明,事務沒提交罷了
妥妥的事務問題。哥們事務提交了就能看到了。