缓存介绍:
1.MyBatis中使用缓存来提高其性能。
2.当查询数据时, 会先从缓存中取出数据,如果缓存中没有,再到数据库当中查询
3.MyBatis中的缓存分为两种:一级缓存和二级缓存
4.一级缓存是sqlSession级别的,二级缓存是mapper级别的
一级缓存:
1.本地缓存 (默认开启)
2.在sqlSession没有关闭之前,再去查询时, 会从缓存当中取出数据,不会重新发送新的sql
A:一级缓存失效的几种情况:
1:第一种情况:如果在查询之前,执行了增\删\改 缓存就会失效
2:第二种情况:手动清空缓存(在测试类中2个查询语句之间使用)
3:第三种情况:如果两次的查询条件不一样,缓存也会失效(一个id是4,一个id是3)
4:第四种情况:如果两个查询在不同的sqlsession当中
B:二级缓存:
1.全局作用域缓存 一个namespace对应一个缓存
2.如果会话关闭,一级缓存的数据会被保存到二级缓存中
3.不同namespace查出的数据 ,会放到自己对应的缓存中
4.现在默认也是打开的
1:二级缓存的使用步骤:
第一步:1.确保在配置文件当中开启二级缓存
2:第二步:在对应的mapper中添加cache标签
3:第三步:3.POJO需要实现Serializable接口
4:测试类如下图所示
C:缓存的相关属性以及使用顺序