mybatis的缓存机制

缓存机制

Mybatis在自己的框架中继承了缓存机制,如果查询的数据会在缓存中存放一份,当我们想要再次使用这个数据的时候,只需从缓存中加载即可,减少了IO的访问,同时CPU从缓存中获取数据比从内存中获取数据的速度要快

将数据存储在内存中,减少频繁的操作查询数据库,提高系统性能。

  • 一级缓存,SqlSession级别的缓存
  • 二级缓存,SqlSessionFactory级别的缓存

一级缓存

SqlSession级别的缓存,无需任何配置,框架自带

  • 一级缓存中,不同的SqlSession对象操作同一接口时,不可相互访问,缓存不能共享
  • 一级缓存中,SqlSession对象执行了增删改操作后,缓存会被清除掉

清除缓存操作:sqlSession.clearCache(); ——> 一级缓存会被清理掉

二级缓存

SqlSessionFactory级别的缓存,Mybatis框架中二级缓存默认为true,也就是默认开启的,

  • 二级缓存中,不同的SqlSession对象操作同一接口时,可相互访问,缓存可以共享

  • 执行增删改后二级缓存会被清除掉

使用步骤

  1. 指定指定使用的二级缓存的类型(两种方式)
  • 框架自带:使用的时候需要在正在使用的mapper.xml中指定使用的二级缓存的类型
    < cache type=“org.apache.ibatis.cache.impl.PerpetualCache”>< /cache>
  • 第三方插件:ehcache,redis
  1. 实体对象序列化:实现Serializable接口

注意:每一个sqlSession必须在使用结束后(close后),其他sqlSession才可以操作缓存区域的数据。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值