一、查询缓存管理-基本知识:
1.查询缓存工作原理
查询语句<-->缓存<-->DB
2.查询缓存中的缓存内容
MyBatis查询缓存中存放的是“查询结果”
3.缓存分类
MyBatis查询缓存根据作用范围与生命周期的不同,可以分为两类:
1)一级缓存,也称为SqlSession缓存 默认是开启的,无法关闭
2)二级缓存,默认是关闭的,若要使用,必须开启
可以分为两类:
1> 内置二级缓存
2>外置第三方缓存产品
类别 作用范围 生命周期
一级缓存 namespace 与SqlSession的生命周期相同
二级缓存 namespace 与整个应用的生命周期相同
二、查询缓存管理-一级缓存
(1)
一级缓存中存放的不是查询出的对象本身
一级缓存的底层实现是一个Map
key:hashCode + statementId + SQL语句
value:查询结果
(2)增删改操作会刷新一级缓存(清空一级缓存)
(3)验证:
1)修改映射文件
2)修改日志文件
3)定义接口实现方法
4)修改测试类
三、查询缓存管理-二级缓存
内置二级查询缓存:
1.内置二级缓存开启方式分为两步
1)在映射文件中添加<cache/>标签
2)操作的实体类要实现Serializable接口