复制
收藏
提问
全网
请简述MyBatis的一级缓存的机制。
2个月前
理解问题请简述MyBatis的一级缓存的机制。
已完成理解「请简述MyBatis的一级缓存的机制。」
展开阅读网页
MyBatis的一级缓存机制是SqlSession级别的缓存,它默认开启,用于存储该SqlSession执行过的SQL语句和结果集映射。
一级缓存机制
- 定义:一级缓存是MyBatis中默认的缓存机制,也被称为SqlSession级别的缓存。
- 作用范围:一级缓存仅限于同一个SqlSession,当SqlSession结束或被关闭时,缓存中的数据将被清空。
- 工作原理:当执行相同的SQL语句时,MyBatis会首先在一级缓存中查找结果,如果找到则直接返回缓存数据,避免了重复查询数据库,从而提高了查询效率。
- 内存实现:一级缓存是基于内存实现的,因此其容量有限,当缓存数据过多时可能会导致内存溢出。2
- 默认开启:MyBatis默认开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数个sql完全一致的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次sql,使用SqlSession第一次查询后,MyBatis会将其放在缓存中,之后再查询时若没有缓存失效或超时,SqlSession都会取出当前缓存的数据,不会再发送sql到数据库。1
更专业一些
转笔记
专业
请简述MyBatis的一级缓存的机制。不在提醒