学习笔记——Mybatis中缓存机制
2023-01-12
一、Mybatis中缓存机制
1、一级缓存
(1)概述:一级缓存(即本地缓存或SqlSession级别缓存)
(2)特点:
①一级缓存默认开启
②不能关闭
③可以清空
(3)缓存原理
①当第一次获取数据时,需要先从数据库中加载数据,将数据缓冲到Mybatis一级缓存中(缓存底层实现原理是Map,key:hashCode+查询的SqlId+编写的sql查询语句+参数)
②以后再次获取数据时,先从一级缓存中获取,如未获取到数据,再从数据库中获取数据
(4)一级缓存五种失效情况
①不同的SqlSession对应不同的一级缓存(例如:将第一次查询的sqlSession关闭了,之后开启一个新的sqlSession)
②同一个sqlSession但是查询条件不同
③同一个sqlSession两次查询期间执行了任何一次增删改查操作
④同一个sqlSession两次查询期间手动清空了缓存
⑤同一个sqlSession两次查询期间提交了事务
2、二级缓存
(1)二级缓存概述
(1)二级缓存(即全局作用域缓存)
(2)SqlSessionFactory级别缓存
(2)二级缓存的特点
①二级缓存默认关闭,需要开启时才能使用
②二级缓存需要提交sqlSession或关闭sqlSession时,才会缓存
(3)二级缓存使用的步骤
①全局配置文件中开启二级缓存
<setting name="cacheEnabled" value="true"></setting>