Git007

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【MyBatis学习】04、缓存

缓存(Cache)

1、简介

1、什么是缓存

  • 存在内存中的临时数据
  • 将用户经常查询的数据放入缓存中,避免用户从磁盘上查询数据,而从缓存中查询,提高查询效率,解决了高并发系统的性能问题。

2、Mybatis缓存

Mybatis默认两级缓存:一级缓存二级缓存

  • 默认只开启一级缓存(SqlSession级别缓存)。
  • 二级缓存需手动开启配置,基于namespace级别缓存。
  • 提高拓展性,Mybatis定义缓存接口Cache,可通过实现接口来自定义二级缓存。

2.1一级缓存

缓存失效的情况:

  1. 查询不同的东西。
  2. 增删改操作,可能会改变原来的数据,故必定会刷新缓存。
  3. 查询不同的Mapper.xml。
  4. 手动清理缓存

小结:一级缓存是默认开启的,只在一次SqlSession中有效 ,拿到连接到关闭连接区间段

2.2二级缓存

步骤

  1. 开启全局缓存 (mybatis配置文件中)
<settings>
    <setting name="cacheEnabled" value="true"/>
</settings>

     2.在要使用的二级缓存Mapper中开启

<cache/>

也可以使用参数

<cache
  eviction="FIFO"
  flushInterval="60000"
  size="512"
  readOnly="true"/>

      3.测试

尽量将实体类序列化

@AllArgsConstructor
@Data
public class Blog  implements Serializable {
    private String id;
    private String title;
    private String author;
    private Date createTime;
    private int views;
}

小结:

  • 只要开启了二级缓存,在同一个Mapper下就有效
  • 所有数据都会放一级缓存中
  • 只有当会话提交或关闭的时候,才会提交二级缓存

posted on   cczzhh007  阅读(27)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示