MyBatis查询缓存

Posted 【一片冰心】

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis查询缓存相关的知识,希望对你有一定的参考价值。

查询缓存:缓存的底层实现是一个Map,Map的value是查询结果,Map的key即查询依据,使用的ORM框架不同,查询依据是不同的
                 MyBatis的查询依据是:sql的id+sql语句
                 Hibernate的查询依据是:查询结果对象的id
                增删改操作都会清空一级缓存,无论是否提交。
                增删改同样会清空二级缓存《可以在insert语句中设置使增删改不对其产生影响》
(对于二级缓存的清空,实质上是对所查找的key对应的value置为null,而并非将<key,value>对,即Entry对象删除)


        所以从DB中进行select 查询的条件,即缓存中不存在需要的数据
       1)缓存中根本就不存在这个key
       2)缓存中存在该key所对应的Entry对象,但其value为null










以上是关于MyBatis查询缓存的主要内容,如果未能解决你的问题,请参考以下文章

mybatis学习笔记(13)-查询缓存之二级缓存

mybatis系列-15-查询缓存

MyBatis缓存

Mybatis的缓存

MyBatis框架查询缓存-二级缓存原理

Mybatis学习总结——查询缓存