mybatis-plus如何关闭一级缓存
时间: 2023-07-18 15:42:12 浏览: 170
在 Mybatis-Plus 中关闭一级缓存有两种方式:
1. 全局关闭一级缓存
在 Mybatis-Plus 的配置文件中,可以设置全局关闭一级缓存,具体配置如下:
```
mybatis-plus:
configuration:
local-cache-scope: STATEMENT
```
其中,`local-cache-scope` 属性可以设置为 `STATEMENT`、`SESSION` 或 `STATEMENT, SESSION`,分别代表关闭一级缓存、开启一级缓存和同时开启一级缓存和本地缓存。
2. 在 Mapper 方法上关闭一级缓存
在某些情况下,我们可能只需要针对某一个 Mapper 方法关闭一级缓存。这时,可以在方法上使用 `@Options` 注解来进行配置,例如:
```
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Options(useCache = false)
User selectById(Long id);
}
```
在上述示例中,我们使用了 `@Options` 注解,并将 `useCache` 属性设置为 `false`,这意味着我们关闭了该方法的一级缓存。需要注意的是,这种方式只能关闭当前 SqlSession 中的一级缓存,如果有多个 SqlSession,其它 SqlSession 执行同一个查询可能仍然会使用一级缓存。
相关问题
mybatis-plus三级缓存
MyBatis-Plus并不直接支持三级缓存。MyBatis-Plus是MyBatis的增强工具,它提供了许多方便的功能和增强,但并没有对MyBatis的缓存机制进行改动。
在MyBatis中,有两级缓存:一级缓存和二级缓存。一级缓存是SqlSession级别的缓存,它默认开启且无法关闭。它的作用是在同一个SqlSession中,相同的查询语句会直接从缓存中获取结果,而不会再去数据库查询。二级缓存是Mapper级别的缓存,它需要手动开启并配置。它的作用是在多个SqlSession之间共享查询结果,减少数据库查询的次数。
如果你需要实现三级缓存,你可以考虑结合MyBatis-Plus和其他缓存框架来实现。比如,你可以使用Redis作为第三级缓存,将查询结果缓存在Redis中,从而实现跨应用共享的缓存。你可以在使用MyBatis-Plus时,手动将查询结果存入Redis,并在需要的时候从Redis中获取结果。
总结来说,MyBatis-Plus本身并不直接支持三级缓存,但你可以结合其他缓存框架来实现类似的功能。
mybatis -plus二级缓存默认
MyBatis-Plus 默认是关闭二级缓存的。如果需要开启二级缓存,需要在 mybatis-config.xml 中配置。具体操作为在 `configuration` 标签内添加 `settings` 标签,并在其中设置 `cacheEnabled` 属性为 true,如下所示:
```xml
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
</configuration>
```
需要注意的是,开启二级缓存可能会引起脏读等问题,具体使用时需要谨慎。同时,MyBatis-Plus 也提供了相应的注解和 API 接口来操作二级缓存,可以根据具体需求进行使用。
阅读全文