什么是缓存?
存在于内存中的临时数据。
为什么使用缓存?
减少和数据库的交互次数,提高执行效率。
什么样的数据能使用缓存,什么样的数据不能使用
适用于缓存:
经常查询并且不经常改变的。
数据的正确与否对最终结果影响不大的。
不适用于缓存:
经常改变的数据
数据 的正确与否对最终结果影响很大的。
例如:
商品的库存,银行的汇率,股市的牌价。

Mybatis中的一级缓存和二级缓存

一级缓存

是指Mybatis中SqlSession对象的缓存。
当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供的一块区域中。
该区域的结构是一个Map。当我们再次查询同样的数据,Mybatis会先去sqlSession中查询是否有,有的话直接拿来用。
当SqlSession对象消失时,Mybatis的一级缓存也就消失了。

// 第一次查询,缓存到一级缓存
// 第二次查询,直接读取一级缓存

执行结果:

可以看出结果中:
这两个对象是同一个,而且返回结果是true