介绍
Mybatis包含一个非常强大的查询缓存特性,它可以非常方便的定制和配置缓存和配置缓存。缓存可以极大的提升查询效率。
Mybatis系统中默认定义了两次缓存:一级缓存和二级缓存
默认情况下,只有一级缓存开启(SqlSession级别的缓存,也称本地缓存)
二级缓存需要手动开启和配置,它是基于namespace级别的缓存
为了提高扩展性,Mybatis定义缓存接口Cache。我们可以通过实现Cache接口来定义二级缓存
一级缓存
一级缓存默认是开启的,只在一次SqlSession中有效,也就是连接到关闭这个区间中,一次缓存就相当于一个map
测试
1.开启日志
2.测试在一个session中查询两次相同的记录
3.查看日志输出
缓存失效
1.查询不同的东西
2.增删改操作,由于增删改操作可能会改变原来数据,所有刷新缓存
3.查询不同的Mapper.xml
4.手动清理缓存(SqlSession.clearCache())
二级缓存
工作机制