搜尋

首頁  >  問答  >  主體

java - mybatis 插入一条数据时,数据库没能找到这条数据,但是程序却可以查询出这条数据

用mybatis向mysql数据库插入一条数据后,然后查询出来。数据库里没有这条数据,但是程序通过查询语句却能查到这条数据

程序显示结果:

但是数据库就没能找到这条数据

PHP中文网PHP中文网2840 天前489

全部回覆(6)我來回復

  • 大家讲道理

    大家讲道理2017-04-18 09:54:06

    壓根就不是緩存,既不是資料庫,也不是mybatis。

    資料庫很好理解,你沒有commit的資料只有在你目前的transaction中可以查到,其他客戶端是查不到的,如果查到了豈不是髒讀了嗎?

    mybatis的快取很簡單,預設insert,delete,update都會清空緩存,只有在select的時候才會在快取裡放東西。

    所以答案很明顯了,就是你auto commit關閉的問題,沒有把更新操作commit到資料庫,所以只能在你自己這裡查到,你開個客戶端卻查不到

    回覆
    0
  • 高洛峰

    高洛峰2017-04-18 09:54:06

    你的圖片:

    會不會是你事務的原因?因為你插入了以後立刻就查詢了,事務還沒提交?

    回覆
    0
  • 迷茫

    迷茫2017-04-18 09:54:06

    程式可能使用了快取機制,你插入的資料可能在快取中,還沒到資料庫,你百度搜尋資料庫快取

    回覆
    0
  • 黄舟

    黄舟2017-04-18 09:54:06

    我覺得是沒有commit進去

    回覆
    0
  • 阿神

    阿神2017-04-18 09:54:06

    只能說明,事務沒提交罷了

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 09:54:06

    妥妥的事務問題。哥們事務提交了就能看到了。

    回覆
    0
  • 取消回覆