mybatis mysql 事務,緩存,session

當使用mybatis存數據到mysql時,如果事務并沒有提交,剛發送insert語句后立馬接著一句select,會發現剛插入的那條數據能查出來,但是數據庫并沒有存在這條數據。

可能的原因

: mybatis一級緩存,由于并沒有提交事務,導致mybatis緩存并沒有被清空,所以查詢的時候從緩存中查出了數據
: mysql數據庫的session會話,mysql自己的會話緩存,別人連接數據庫是查詢不到的,但是插入數據的那一次會話能查詢到

最終的原因
: 只是因為事務沒有提交,只能當時insert的時候緊接著select才能查詢到,并不是存在于緩存中,因為并不是查詢語句,所以不會緩存數據。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容