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

原文地址:https://www.cnblogs.com/zhengzhen0512/p/7683886.html