mybatis缓存

1、一级缓存


 

  配置:

我们来看看如何使用MyBatis一级缓存。开发者只需在MyBatis的配置文件中,添加如下语句,就可以使用一级缓存。共有两个选项,SESSION或者STATEMENT,默认是SESSION级别,即在一个MyBatis会话中执行的所有语句,都会共享这一个缓存。一种是STATEMENT级别,可以理解为缓存只对当前执行的这一个Statement有效。

mybatis全局配置文件定义,默认开启 session级别
<setting name="localCacheScope" value="SESSION"/>

作用范围:当前sqlSession中(一个会话中)

 

 

总结

  1. MyBatis一级缓存的生命周期和SqlSession一致。
  2. MyBatis一级缓存内部设计简单,只是一个没有容量限定的HashMap,在缓存的功能性上有所欠缺。
  3. MyBatis的一级缓存最大范围是SqlSession内部,有多个SqlSession或者分布式的环境下,数据库写操作会引起脏数据,建议设定缓存级别为Statement。
 

2、二级缓存


 

配置

要正确的使用二级缓存,mybatis全局配置文件需完成如下配置的。默认关闭

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

作用范围:sqlSession间共享(同一个mapper接口)

 

 

 

 

 

总结:建议关闭 使用成熟的分布式缓存如redis

 

参考:

https://tech.meituan.com/2018/01/19/mybatis-cache.html

posted @ 2020-08-08 19:55  蓝天随笔  阅读(91)  评论(0编辑  收藏  举报