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)中,可以通过设置标签下的来开启一级缓存,还可以通过设置来开启懒加载功能,这样一级缓存在第一次查询时才会生效。

Mybatis二级缓存

1、什么是二级缓存?

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

2、二级缓存的特点

(1)范围:跨SqlSession

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

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

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

3、如何配置二级缓存?

在Mybatis的配置文件(mybatis-config.xml)中,可以通过设置标签下的来开启二级缓存,需要在映射文件中的 SELECT * FROM user WHERE id = {id}

Mybatis一级缓存与二级缓存的区别

1、作用范围不同:一级缓存是SqlSession级别的,二级缓存是全局级别的。

2、生命周期不同:一级缓存与SqlSession相同,二级缓存与应用程序相同。

3、作用域不同:一级缓存是同一个Mapper方法调用,二级缓存是同一个Mapper接口及其所有方法调用。

4、缓存策略不同:一级缓存采用LRU策略,二级缓存基于自定义的Cache实现类。

相关问题与解答

问题1:Mybatis一级缓存和二级缓存是否可以同时使用?

答:不可以,Mybatis只支持启用其中一个缓存机制,要么启用一级缓存,要么启用二级缓存,如果同时启用两者,Mybatis会抛出异常。

问题2:Mybatis一级缓存和二级缓存有什么区别?

答:一级缓存是SqlSession级别的本地缓存,作用范围是同一个Mapper方法调用;二级缓存是全局级别的缓存,作用范围是同一个Mapper接口及其所有方法调用,它们的生命周期、作用域和缓存策略也有所不同。

标题名称:mybatis一级缓存和二级缓存是什么
文章出自:http://www.zyruijie.cn/qtweb/news10/9010.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联