mybatis二级缓存默认设置
时间: 2024-01-18 15:18:06 浏览: 83
MyBatis 的二级缓存默认是关闭的,需要手动配置开启。在 MyBatis 的配置文件中,可以通过设置 `<cache>` 元素的 type 属性为 "org.apache.ibatis.cache.impl.PerpetualCache" 来开启二级缓存。
范例:<<引用:MyBatis 的二级缓存默认是关闭的,需要手动配置开启。在 MyBatis 的配置文件中,可以通过设置 <cache> 元素的 type 属性为 "org.apache.ibatis.cache.impl.PerpetualCache" 来开启二级缓存。>>
相关问题
springboot 使用mybatis二级缓存
Spring Boot整合MyBatis后,可以利用MyBatis的二级缓存功能来提高性能。二级缓存通常存储在内存中,用于减少数据库查询次数,特别是在数据读取频繁且数据相对静态的情况下。以下是配置和使用二级缓存的基本步骤:
1. **启用MyBatis二级缓存**: 在`mybatis-spring.xml`或application.properties(YAML)文件中,添加开启缓存的配置。例如:
```xml
<mybatis:scan base-package="com.example.mapper"/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置二级缓存 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
```
或者
```properties
mybatis.config-location=mybatis-config.xml
```
2. **配置mybatis-config.xml** (XML配置) 或 `SqlSessionFactoryBuilderCustomizer` (Java配置) 中设置二级缓存策略,如指定缓存类型(LRU、FIFO、WEAK等)、默认的TTL(超时时间)以及是否允许分布式缓存。
3. **在Mapper接口上声明缓存级别**: 可以在Mapper接口方法上使用`@Cacheable`, `@CacheEvict`或`@Caching`注解来控制哪些方法使用缓存。比如:
```java
@Cacheable("productCache")
List<Product> getProductById(int productId);
```
4. **清理缓存**: 如果需要手动清空缓存,可以在Service层调用`SqlSession`的`clearCache()`方法。
5. **注意点**:
- 缓存仅适用于无副作用的操作,即缓存的数据不会改变其他对象的状态。
- 分布式环境需额外配置,如使用Redis作为分布式缓存解决方案。
mybatis 二级缓存
MyBatis的二级缓存是一种在多个SqlSession之间共享缓存数据的机制。它是在SqlSessionFactory级别上进行缓存的,可以跨多个SqlSession共享缓存数据。二级缓存的本质是将查询结果存储在内存中,以提高查询效率。
要启用MyBatis的二级缓存,需要在MyBatis的配置文件中设置<setting name="cacheEnabled" value="true" />。默认情况下,二级缓存是关闭的,需要手动开启。
值得注意的是,使用MyBatis的二级缓存时,返回的POJO必须是可序列化的,因为缓存需要将数据序列化到内存中。
需要注意的是,二级缓存是基于namespace级别的,不同的namespace拥有独立的二级缓存。当在一个namespace中进行数据修改时,会自动刷新该namespace下的所有查询缓存。而当在一个namespace中进行数据修改时,其他namespace下的查询缓存不会被刷新。因此,在使用二级缓存时,需要注意数据的一致性和缓存的刷新机制。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [【MyBatis】MyBatis 二级缓存全详解](https://blog.csdn.net/qq_21383435/article/details/124768956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [Mybatis 之 二级缓存](https://blog.csdn.net/weixin_52851967/article/details/125190163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文