mybatis mysql 事务,缓存,session

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

可能的原因

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容