[mybatis]缓存机制介绍_一级缓存&二级缓存

Posted 唐火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[mybatis]缓存机制介绍_一级缓存&二级缓存相关的知识,希望对你有一定的参考价值。

两级缓存:
一级缓存:(本地缓存):sqlSession级别的缓存。一级缓存是一直开启的;sqlSession级别的一个Map
​ 与数据库同一次会话期间查询到的数据会放在本地缓存中。
以后如果需要获取相同的数据,直接从缓冲中拿,没必要再去查询数据库;
二级缓存:(全局缓存);基于namespace级别的缓存;一个namespace对应一个二级缓存;
​ 工作机制:

  • 1.一个会话,查询一条数据,这个数据就会被放在当前会话的一级缓存中;
  • 2.如果会话关闭;一级缓存中的数据会被保存到二级缓存中;新的会话查询信息,就可以参照二级缓存中的内容
  • 3.sqlSession==== EmployeeMapper ===>Employee
  • DepartmentMapper===>Department
    不同namespace查出的数据会放在自己对应的缓存中(map中)
    效果:数据会从二级缓存中获取
    ​ 查出的数据都会默认先放在一级缓存中。
    ​ 只有会话提交或者关闭以后,一级缓存中的数据才会转移到二级缓存中

以上是关于[mybatis]缓存机制介绍_一级缓存&二级缓存的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis缓存机制

MyBatis缓存介绍

MyBatis缓存机制的设计与实现

《深入理解mybatis原理6》 MyBatis的一级缓存实现详解 及使用注意事项

《深入理解mybatis原理4》 MyBatis缓存机制的设计与实现

MyBatis缓存机制