當使用
mybatis
存數據到mysql
時,如果事務并沒有提交,剛發送insert
語句后立馬接著一句select
,會發現剛插入的那條數據能查出來,但是數據庫并沒有存在這條數據。
可能的原因:
: mybatis
一級緩存,由于并沒有提交事務,導致mybatis
緩存并沒有被清空,所以查詢的時候從緩存中查出了數據
: mysql
數據庫的session會話,mysql
自己的會話緩存,別人連接數據庫是查詢不到的,但是插入數據的那一次會話能查詢到
最終的原因:
: 只是因為事務沒有提交,只能當時insert
的時候緊接著select
才能查詢到,并不是存在于緩存中,因為并不是查詢語句,所以不會緩存數據。