mybatis 缓存

–不同SqlSession缓存不能共享
​ MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。
​ 但是不同的SqlSession对象,因为不用的SqlSession都是相互隔离的,所以相同的Mapper、参数和方法,他还是会再次发送到SQL到数据库去执行,返回结果。

mybatis:
  configuration:
    cache-enabled: false #禁用二级缓存
    local-cache-scope: statement #一级缓存指定为statement级别

每次查询结束都会清掉一级缓存,实际效果就是禁用了一级缓存; org.apache.ibatis.executor.BaseExecutor#clearLocalCache

https://blog.csdn.net/NongYeting/article/details/106408985

评论