Mybatis

MyBatis缓存机制

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

一级缓存

Mybatis

一级缓存配置
如何使用MyBatis一级缓存。开发者只需在MyBatis的配置文件中,添加如下语句,就可以使用一级缓存。共有两个选项,SESSION或者STATEMENT

  • 默认是SESSION级别,即在一个MyBatis会话中执行的所有语句,都会共享这一个缓存。
  • 另一种是STATEMENT级别,可以理解为缓存只对当前执行的这一个Statement有效。

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