mybatis缓存

mybatis有一级缓存和二级缓存
一级缓存是sqlsession级别的缓存(事务级别)一级缓存失效的原因:

  • sqlsession 不同
  • sqlsession相同 但是在俩次查询之间有其他增删改的操作(在增删改的操作时候 mapper.xml sql 设置 flushcache 默认为true)
  • sqlsession相同 查询条件不同
  • sqlsession相同 主动清除缓存
    关闭一级缓存 (SESSION是开启)
 <setting name="localCacheScope" value="STATEMENT"/>

二级缓存是namespace的缓存,对应mapper.xml文件
开启二级步骤

  1. mybatis-config.xml设置
  <setting name="cacheEnabled" value="true"/>
  1. mapper.xml文件中增加<cache/>
  2. 对于entity 需要实现序列化接口
    注意:
    cacheEnable 为false 禁用的是二级缓存
    每个select 标签都有 useCache = “false” 禁用 二级缓存
    flushCache =true 会清除一级和二级缓存

一级缓存当sqlsession关闭的时候,才会将缓存刷到 二级缓存中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值