mybatis一级缓存和二级缓存是什么 - 果核剥壳

Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,Mybatis提供了一级缓存和二级缓存两种缓存机制,用于提高查询性能和减少数据库访问次数。

Mybatis一级缓存
1、什么是一级缓存?

一级缓存是Mybatis中默认开启的缓存机制,也叫本地缓存,当我们执行查询操作时,Mybatis会将查询结果存储在内存中,如果再次执行相同的查询语句,Mybatis会直接从内存中获取结果,而不会再次去数据库中查询,一级缓存是基于SqlSession级别的,也就是说在同一个SqlSession中,相同的查询语句和参数会共享同一个缓存。

2、一级缓存的特点

(1)范围:同一个SqlSession

(2)生命周期:与SqlSession相同,当SqlSession关闭或者清空缓存时,一级缓存也会被清空。

(3)作用域:同一个Mapper方法调用

(4)缓存策略:LRU(最近最少使用)策略

3、如何配置一级缓存?

在Mybatis的配置文件(mybatis-config.xml)中,可以通过设置<settings>标签下的<setting name="cacheEnabled" value="true"/>来开启一级缓存,还可以通过设置<setting name="lazyLoadingEnabled" value="true"/>来开启懒加载功能,这样一级缓存在第一次查询时才会生效。

Mybatis二级缓存
1、什么是二级缓存?

二级缓存是Mybatis提供的一种全局缓存机制,它可以跨SqlSession共享数据,二级缓存是基于HashMap实现的,当多个SqlSession执行相同的查询语句时,Mybatis会将查询结果存储在二级缓存中,后续的SqlSession可以直接从二级缓存中获取结果,而不需要再去数据库中查询,二级缓存需要手动配置和创建,通常使用第三方缓存实现库如EhCache、Redis等。

2、二级缓存的特点

(1)范围:跨SqlSession

(2)生命周期:与应用程序相同,当应用程序关闭或者清空缓存时,二级缓存也会被清空。

(3)作用域:同一个Mapper接口及其所有方法调用

(4)缓存策略:基于自定义的Cache实现类,可以自定义缓存策略

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

(1)
上一篇 2024年1月9日 上午10:13
下一篇 2024年1月9日 上午10:16

相关推荐

发表回复

评论问题之前,点击我,能帮你解决大部分问题

您的电子邮箱地址不会被公开。 必填项已用*标注