Mybatis--第十节缓存

缓存介绍
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:缓存的相关属性以及使用顺序

在这里插入图片描述

发布了18 篇原创文章 · 获赞 0 · 访问量 259

猜你喜欢

转载自blog.csdn.net/JULIAN__/article/details/103584241