Mybatis 踩坑第六弹—缓存

本文详细介绍了Mybatis的一级缓存和二级缓存机制。一级缓存默认开启,存在于Session级别,而二级缓存默认开启但需配置,基于namespace。文章列举了一级缓存失效的四种情况,并说明了二级缓存的工作流程、配置方法及注意事项。同时,讨论了增删改操作对缓存的影响,以及如何进行第三方缓存的整合。
摘要由CSDN通过智能技术生成

Mybatis 支持两级缓存,分别是一级缓存(session 级别,又称本地缓存)和二级缓存(namespace 级别,又称全局缓存);

 

其中一级缓存默认开启,在于数据库相同的会话期间查询到的数据会放在本地缓存,之后再查询相同的数据会直接从本地缓存中取;但在四种情况下,一级缓存会失效:

1、使用不同的会话请求相同的数据;

2、使用相同的会话,请求不同的数据;

3、使用相同的会话,在请求之间执行了增删改操作,不论该操作是否针对一级缓存中的数据;

4、使用相同的会话,在请求之间主动清楚了一级缓存(session.clearCache());

 

二级缓存默认开启(但未配置),工作机制为:当使用 session 查询完数据之后将数据先保存在一级缓存中,在 session 关闭时,将一级缓存的数据取出并放进与之对应的 map 中,不同的 namespace 之间不共享 map;使用流程:

1)开启全局缓存配置;

2)在 mapper.xml 文件中配置使用二级缓存(因为二级缓存是基于 namespace 的,每个 mapper.xml 文件对应一个 namespace)

3)对应的 POJO 或者 PO 必须实现序列化接口(因为当 readOnly=false 时,缓存在返回数据的时候会使用到序列化的技术)

 

注意事项:

1)对于

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值