mybatis mysql 事务,缓存,session

2016-08-26  本文已影响0人  全栈在路上

当使用mybatis存数据到mysql时,如果事务并没有提交,刚发送insert语句后立马接着一句select,会发现刚插入的那条数据能查出来,但是数据库并没有存在这条数据。

可能的原因

: mybatis一级缓存,由于并没有提交事务,导致mybatis缓存并没有被清空,所以查询的时候从缓存中查出了数据
: mysql数据库的session会话,mysql自己的会话缓存,别人连接数据库是查询不到的,但是插入数据的那一次会话能查询到

最终的原因
: 只是因为事务没有提交,只能当时insert的时候紧接着select才能查询到,并不是存在于缓存中,因为并不是查询语句,所以不会缓存数据。

上一篇 下一篇

猜你喜欢

热点阅读