Mybatis缓存

Mybatis和Hibernate类似,同样有缓存,有一级缓存和二级缓存。

一级缓存

Mybatis通过SqlSession对数据库进行操作,所以一级缓存是SqlSession级别的缓存,即在同一个SqlSession中,操作数据库后会将查询数据放到缓存区域,当该SqlSession再次查询该数据时,将在缓存区域获得数据。若该SqlSession执行增加(insert)、修改(update)、删除(delete)操作后,commit()时将会清空缓存。
一级缓存默认开启。假如在程序中SqlSession非单例,即有多个SqlSession实例,则会出现脏数据的情况,因此此缓存只对单个SqlSession有效。使用中要保证SqlSession是单例的,即整个过程共享同一SqlSession。

二级缓存

这里写图片描述
Mybatis二级缓存是跨SqlSession的缓存,即各个SqlSession共享同一二级缓存,和一级缓存类似,SqlSession查询数据后,会将数据存储在缓存区域,当该SqlSession或者其他SqlSession再次查询该数据时,将在缓存区域获得数据。若某SqlSession执行增加(insert)、修改(update)、删除(delete)操作后,commit()时将会清空缓存。
二级缓存配置:
在SqlMapConfig.xml配置文件中,开启缓存标识,

<setting name="cacheEnabled" value="true"/>

该值默认为true,在mapper.xml中,开启mapper级别缓存。配置即可。运行程序时,可查看日志,会有缓存命中率等提示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值