Mybatis一级缓存的简单陈述

Mybatis数据库 进行 交汇(select语句) 时,首先会先去二级缓存查找是否有对应的数据,如果查找无果则会去一级缓存中查找是否有对应的数据
Mybatis与数据库 同一次会话 期间查询到的数据都会存储在本地缓存中,以后如果需要 获取相同的数据,则直接从缓存中拿,不再去数据库进行查询。

一级缓存,也可以称为 本地缓存
每个SqlSession实例都拥有 一个 自己的本地缓存。如果创建一个的SqlSession实例,则该实例拥有一个新的一级缓存

一级缓存的使用体验

Mybatis一级缓存失效的四种场景
控制台打印结果如下
Mybatis一级缓存失效的四种场景
结果Mybatis 只发送了一条 select sql

一级缓存失效的四种场景(请各位看官结合上方)

场景一:SqlSeesion实例不同

Mybatis一级缓存失效的四种场景
控制台打印结果如下
Mybatis一级缓存失效的四种场景
结果虽然select sql相同,但 Mybatis 发送了两条 select sql

场景二:SqlSeesion实例相同,但查询条件不同

Mybatis一级缓存失效的四种场景
控制台打印结果如下
Mybatis一级缓存失效的四种场景
结果虽然SqlSession实例相同,但 Mybatis 发送了两条 select sql

场景三:SqlSeesion对象相同,查询条件也相同,但两次查询之间执行了增删改操作

Mybatis一级缓存失效的四种场景
控制台打印结果如下
Mybatis一级缓存失效的四种场景
结果虽然SqlSession实例相同select sql也相同,但 Mybatis 发送了两条 select sql

场景四:SqlSeesion对象相同,两次查询条件相同,中间无其它增删改操作,但使用了clearCache()方法

Mybatis一级缓存失效的四种场景
控制台打印结果如下
Mybatis一级缓存失效的四种场景
结果虽然SqlSession实例相同select sql也相同同时两条select sql中间 无其它增删改操作,但 Mybatis 发送了两条 select sql

博主的话

鄙人不才,如有思虑不周之处,还望各位指正。祝诸君与我,皆可上高楼,望尽天涯路!!!

转载,请标明出处

相关文章:

  • 2022-12-23
  • 2021-09-18
  • 2022-01-05
  • 2022-12-23
  • 2022-01-14
  • 2021-11-08
  • 2021-11-19
猜你喜欢
  • 2021-12-11
  • 2022-12-23
  • 2022-12-23
  • 2021-08-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案