一级缓存二级缓存的区别

  ①、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。

  ②、二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。二级缓存底层还是个HashMap去实现。

开启二级缓存代码:


	
<!--开启二级缓存  -->
<settings>
    <setting name="cacheEnabled" value="true"/>
</settings>

二、

1、一级缓存
    a)SqlSession级别的
    b)默认是开启的
2、二级缓存
    a)二级缓存SQLSessionFactory(namesapce)
    b)默认是关闭的
    c)放在二级中的对象要实现对象序列化接口
    d)二级缓存可以使用第三方的
3、MyBatis的一级缓存和二级缓存都是用PerpetualCache来实现的
4、MyBatis执行更新操作后(cud),缓存都会被刷新

总结:

一级缓存是每个sqlsession私有的缓存区域,默认开启。

二级缓存是多个sqlsession共有的缓存区域,默认关闭,放在二级缓存中的对象必须实现序列化接口,且二级缓存可以使用第三方的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值