mybatis_06---缓存

mybatis缓存机制

缓存机制简介

1、mybatis包含一个非常强大的查询缓存特性,可以方便的配置和定制。缓存可以极大的提升查询效率
2、mybatis系统中默认定义了两级缓存:一级缓存、二级缓存
3、默认情况下,只有以及缓存(SqlSession级别的缓存,也称为本地缓存)开启
4、二级缓存需要手动开启和配置,他是基于namespace级别的缓存
5、为了提高扩展性,mybatis定义了缓存接口Cache,可以通过实现Cache接口来自定义二级缓存

一级缓存以及使用

1、一级缓存(local cache)级本地缓存,作用域默认为SqlSession。当Session flush或close后,该Session中的所有Cache将被清空;
2、本地缓存不能被关闭,但可以调用clearCache()来清空本地缓存,或者改变缓存的作用域
3、mybatis3.1版本后,可以配置本地缓存的作用域,可在mybatis.xml文件中配置
在这里插入图片描述
4、一级缓存的工作机制
同义词绘画期间只要查询过的数据都会保存在当前SqlSession的一个Mao中
key:hashCode+查询的SqlId+编写的sql查询语句+参数

一次缓存失效四中情况

1、不同的SqlSession对应不同一级缓存
2、同一个SqlSession但是查询条件不同
3、同一个SqlSession,两次查询期间执行了任何一次的增删改查操作
4、同一个SqlSession,两次查询期间手动清空了缓存

二级缓存以及使用

1、二级缓存(second level cache),全局作用域缓存
2、二级缓存默认不开启,需要手动配置
3、mybatis提供二级缓存的接口以及实现,缓存实现要求POJO实现Serializable接口
4、二级缓存在SqlSession关闭或提交之后才会生效
5、二级缓存使用的步骤:

①全局配置文件中开启二级缓存:<setting name="cacheEnabled" value="true" />
②需要使用二级缓存的映射文件处使用cache配置缓存<cahe/>
③注意:POJO需要实现Serializable接口

6、二级缓存的相关属性
①evction=“”:缓存的回收机制

	LRU:最近最少使用:移除最长时间不被使用的对象
	FIFO:先进先出:按对象进入缓存的顺序来移除他们
	SOFT:软引用:移除基于垃圾回收器状态和软引用规则的对象
	WEAK:弱引用:移除基于垃圾搜集器和弱引用规则的对象

②flushInterval:刷新间隔,单位毫秒
默认情况下是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新
③size:引用数目在,正整数
代表缓存最多可以存储多少个对象,太大容易导致内存溢出
④readOnly:只读,true、false
true:只读缓存,会给所有调用者返回缓存对象的相同实例,因此这些对象不能被修改,这提供了性能优势,速度快,不安全
false:读写缓存,会返回缓存对象的拷贝(通过序列化)。速度慢,但是安全,默认值为false

缓存的相关属性设置

1、全局setting的cacaheEnable:配置二级缓存开关,一级缓存是一直都处于打开状态
2、select标签的useCache属性:配置这个select是否使用二级缓存。一级缓存一直是使用的
3、sql的flushCache属性:增删改默认flushCchae=true。sql执行后,会同时清空一级、二级缓存。查询默认flushCache=false
4、sqlSession.clearCache():只用来清空一级缓存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以回答这个问题。MyBatis-Spring-Boot-Starter 是一个 MyBatis 和 Spring Boot 集成的插件,可以方便地在 Spring Boot 项目中使用 MyBatis 进行数据库操作。它提供了自动配置和一些常用的配置选项,使得使用 MyBatis 变得更加简单和便捷。 ### 回答2: MyBatis-Spring-Boot-Starter是一个用于整合MyBatis和Spring Boot的工具。它提供了一种方便的方式来配置和使用MyBatis持久化框架,并简化了与Spring Boot的集成过程。 首先,MyBatis-Spring-Boot-Starter支持自动配置。它会根据项目的依赖和配置文件来自动初始化和配置MyBatis,大大减少了手动配置的工作量。只需简单地在配置文件中指定数据库的连接信息和MyBatis的相关配置,就可以轻松地集成MyBatis框架到Spring Boot应用中。 其次,MyBatis-Spring-Boot-Starter还支持事务管理。通过注解的方式,可以很方便地对数据库操作进行事务管理。开发者可以使用@Transactional注解来标记需要进行事务管理的方法,MyBatis-Spring-Boot-Starter会自动为其开启事务并处理事务的提交和回滚。 此外,MyBatis-Spring-Boot-Starter还提供了一些额外的功能,如分页插件、缓存管理等。分页插件可以简化分页查询操作,缓存管理可以提高查询效率。这些功能的开启和配置也是非常简单的,只需在配置文件中进行相应的配置即可。 总而言之,MyBatis-Spring-Boot-Starter是一个极大简化了整合MyBatis和Spring Boot的工具,它提供了自动配置、事务管理和其他辅助功能,使开发者可以更加轻松地使用MyBatis作为数据持久化框架,并结合Spring Boot快速构建稳定高效的应用程序。 ### 回答3: mybatis-spring-boot-starter是一个用于集成MyBatis和Spring Boot的工具包。它可以极大地简化在Spring Boot项目中使用MyBatis的配置和使用过程。 使用mybatis-spring-boot-starter,我们不再需要手动配置MyBatis的配置文件和数据源等信息。只需要在项目的application.properties(或application.yml)文件中简单配置几个参数,如数据库连接信息、MyBatis的Mapper接口所在的包路径等,就可以自动完成MyBatis的初始化工作。 另外,mybatis-spring-boot-starter还集成了一些常用的功能,方便我们在Spring Boot项目中使用MyBatis。例如,它可以自动扫描并注册Mapper接口,并将其注入到Spring容器中。我们可以直接使用@Autowired注解将Mapper接口注入到我们的服务类中,无需手动实例化。 此外,mybatis-spring-boot-starter还提供了一些常见的插件和功能扩展。例如,它支持分页插件、动态SQL插件等,可以方便地对数据库进行操作。同时,它还支持事务管理,保证了数据库操作的一致性和完整性。 总之,mybatis-spring-boot-starter为我们提供了一种更加便捷和高效的方式来集成MyBatis和Spring Boot。它减少了我们的配置工作,提高了开发效率,并且提供了一些常用的功能扩展。使用mybatis-spring-boot-starter,我们可以更加专注于业务逻辑的开发,而无需过多关注底层的配置和细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值