当使用
mybatis
存数据到mysql
时,如果事务并没有提交,刚发送insert
语句后立马接着一句select
,会发现刚插入的那条数据能查出来,但是数据库并没有存在这条数据。
可能的原因:
: mybatis
一级缓存,由于并没有提交事务,导致mybatis
缓存并没有被清空,所以查询的时候从缓存中查出了数据
: mysql
数据库的session会话,mysql
自己的会话缓存,别人连接数据库是查询不到的,但是插入数据的那一次会话能查询到
最终的原因:
: 只是因为事务没有提交,只能当时insert
的时候紧接着select
才能查询到,并不是存在于缓存中,因为并不是查询语句,所以不会缓存数据。