Mybatis学习:Mybatis缓存配置

简介: MyBatis缓存配置包括一级缓存(事务级)、二级缓存(应用级)和三级缓存(如Redis,跨JVM)。一级缓存自动启用,二级缓存需在`mybatis-config.xml`中开启并配置映射文件或注解。集成Redis缓存时,需添加依赖、配置Redis参数并在映射文件中指定缓存类型。适用于查询为主的场景,减少增删改操作,适合单表操作且表间关联较少的业务。

MyBatis缓存配置

数据库 一级缓存、二级缓存、三级缓存

一级缓存:在维持一个会话时,查询获取的数据会存放在一级缓存中,下次使用从缓存中获取。 (事务级缓存)

二级缓存:当会话关闭时,一级缓存的数据会保存在二级缓存中。 (应用级缓存)

三级缓存:可以实现跨jvm,通过远程调用的方式实现数据同步。 (查询缓存 如redis)

二级缓存的使用场景:

1.以查询为主的应用,尽可能少的增、删、改操作;

2.业务以单表操作为主;

3.表与表之间的关联尽可能少;

MyBatis如何配置二级缓存

第一步: 在mybatis-config.xml开启缓存 (默认是打开的)

xml

代码解读

复制代码

<settings>
<setting name="cacheEnable" value="true"/>
</settings>

第二步:在映射文件中进行配置

由于Mybatis在每一对象映射配置单独选择缓存策略,

所以分为2种 Mapper.xml 或者 在接口中使用注解

Mapper.xml

ini

代码解读

复制代码

<cache
eviction="FIFO"  #先进先出的收回策略
flushIntervak="6000"
size="512"
readOnly="true"   #返回对象只可读
/>

使用注解的情况下 在接口上配置

ini

代码解读

复制代码

@CacheNamespace(
 eviction = FifoCahe.class, 
 flushInterval = 60000,
 size = 512,
 readWrite = false    #false只读 true读写
)

集成Redis缓存

特点:存取缓存使用了序列化和反序列 所以实体类要实现Serializable接口

第一步:添加项目依赖

xml

代码解读

复制代码

<dependency>
<groupId>org.mybatis.caches</groudId>
<artifactId>mybatis-redis</artifactId>
<version>1.0.0-beta2</version>
</dependency>

第二步:配置redis参数:redis.properties

ini

代码解读

复制代码

host=localhost
port=6379
connectionTimeout=5000
soTimeout=5000
password=
database=0
clientName=

第三步 在mapping.xml中设置缓存类型

ini

代码解读

复制代码

<mapper namespace="src.com.luo.MybatisMappings.UserMapper.xml" >
  <cache type="org.mybatis.caches.redis.RedisCache"/>
</mapper>


转载来源:https://juejin.cn/post/6968380877193609246

相关文章
|
21天前
|
XML Java 数据库连接
MyBatis的常见配置
MyBatis 常见配置包括数据库连接、类型别名、映射器等核心模块,合理配置可提升开发效率与系统性能。主要内容涵盖核心配置文件结构、关键配置项详解及配置优先级说明。
145 4
|
3月前
|
存储 缓存 NoSQL
mybatisplus一二级缓存
MyBatis-Plus 继承并优化了 MyBatis 的一级与二级缓存机制。一级缓存默认开启,作用于 SqlSession,适用于单次会话内的重复查询;二级缓存需手动开启,跨 SqlSession 共享,适合提升多用户并发性能。支持集成 Redis 等外部存储,增强缓存能力。
|
16天前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
205 4
|
2月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
160 18
|
7月前
|
Oracle 关系型数据库 Java
【YashanDB知识库】Mybatis-Plus适配崖山配置
【YashanDB知识库】Mybatis-Plus适配崖山配置
|
7月前
|
Java 数据库连接 微服务
微服务——MyBatis配置——事务管理
本段内容主要介绍了事务管理的两种类型:JDBC 和 MANAGED。JDBC 类型直接利用数据源连接管理事务,依赖提交和回滚机制;而 MANAGED 类型则由容器全程管理事务生命周期,例如 JEE 应用服务器上下文,默认会关闭连接,但可根据需要设置 `closeConnection` 属性为 false 阻止关闭行为。此外,提到在使用 Spring + MyBatis 时,无需额外配置事务管理器,因为 Spring 模块自带的功能可覆盖上述配置,且这两种事务管理器类型均无需设置属性。
99 0
|
7月前
|
Java 数据库连接 数据库
微服务——MyBatis配置——多环境配置
在 MyBatis 中,多环境配置允许为不同数据库创建多个 SqlSessionFactory。通过传递环境参数给 SqlSessionFactoryBuilder,可指定使用哪种环境;若忽略,则加载默认环境。`environments` 元素定义环境配置,包括默认环境 ID、事务管理器和数据源类型等。每个环境需唯一标识,确保默认环境匹配其中之一。代码示例展示了如何构建工厂及配置 XML 结构。
102 0
|
7月前
|
缓存 Java 数据库连接
微服务——MyBatis配置——常见配置
本文介绍了 MyBatis 的常见配置及其加载顺序。属性配置优先级为:方法参数传递的属性 &gt; resource/url 属性中配置 &gt; properties 元素中指定属性。同时列举了多个关键配置项,如 `cacheEnabled`(全局缓存开关)、`lazyLoadingEnabled`(延迟加载)、`useGeneratedKeys`(使用 JDBC 自动生成主键)等,并详细说明其作用、有效值及默认值。这些配置帮助开发者优化 MyBatis 的性能与行为。
100 0
|
5月前
|
缓存 Java 数据库连接
Mybatis一级缓存详解
Mybatis一级缓存为开发者提供跨数据库操作的一致性保证,有效减轻数据库负担,提高系统性能。在使用过程中,需要结合实际业务场景选择性地启用一级缓存,以充分发挥其优势。同时,开发者需注意其局限性,并做好事务和并发控制,以确保系统的稳定性和数据的一致性。
150 20
|
7月前
|
Java 数据库连接 数据库
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——MyBatis 介绍和配置
本文介绍了Spring Boot集成MyBatis的方法,重点讲解基于注解的方式。首先简述MyBatis作为持久层框架的特点,接着说明集成时的依赖导入,包括`mybatis-spring-boot-starter`和MySQL连接器。随后详细展示了`properties.yml`配置文件的内容,涵盖数据库连接、驼峰命名规范及Mapper文件路径等关键设置,帮助开发者快速上手Spring Boot与MyBatis的整合开发。
873 0