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

相关文章
|
8月前
|
缓存 Java 数据库连接
MyBatis的缓存
MyBatis的缓存
|
7月前
|
SQL 缓存 Java
MYBATIS缓存
MYBATIS缓存
|
6月前
|
缓存 算法 Java
关于MyBatis的缓存详解
MyBatis 的缓存机制非常灵活,可以通过简单的配置来满足不同的性能需求。合理地使用缓存可以显著提高应用程序的性能,尤其是在处理大量数据库查询时。然而,开发者需要注意缓存的一致性和并发问题,特别是在使用可读写缓存时。
|
8月前
|
缓存 Java 数据库连接
Mybatis之缓存
【1月更文挑战第4天】 一、MyBatis的一级缓存 二、MyBatis的二级缓存 三、二级缓存的相关配置 四、MyBatis缓存查询的顺序 五、整合第三方缓存EHCache 1、添加依赖 2、各个jar包的功能 3、创建EHCache的配置文件ehcache.xml 4、设置二级缓存的类型 5、加入logback日志 6、EHCache配置文件说明
104 3
|
8月前
|
SQL 缓存 Java
mybatis缓存详解
mybatis缓存详解
56 0
|
SQL 缓存 Java
【MyBatis】mybatis缓存机制
【MyBatis】mybatis缓存机制
|
缓存 Java 数据库连接
mybatis缓存
mybatis缓存
45 0
|
缓存 Java 数据库连接
MyBatis缓存
MyBatis缓存
84 0
|
缓存 Java 数据库连接
|
SQL 存储 缓存
mybatis的缓存
一级缓存与二级缓存
87 0