mybatis配置二级缓存
时间: 2023-07-11 12:45:50 浏览: 96
MyBatis 二级缓存 关联刷新实现
5星 · 资源好评率100%
MyBatis支持将查询结果缓存到内存中,以提高查询效率。而二级缓存则是将查询结果缓存到外部缓存中,比如Redis、Memcached等,可以被多个SqlSession共享,从而提高性能。
配置MyBatis的二级缓存,需要在MyBatis的配置文件中添加以下内容:
1.在configuration节点下添加如下配置:
```
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
```
2.在mapper节点下添加如下配置:
```
<mapper namespace="com.example.mapper.UserMapper">
<cache type="org.mybatis.caches.redis.RedisCache"/>
<select id="getUserById" resultType="User" useCache="true" flushCache="false" >
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
其中,cache节点指定了使用的缓存类型,type属性的值为org.mybatis.caches.redis.RedisCache,表示使用Redis作为二级缓存。select节点的useCache属性为true表示开启缓存,flushCache属性为false表示不清空缓存。
需要注意的是,使用二级缓存的前提是必须开启一级缓存,即在SqlSession中设置cacheEnabled为true。
阅读全文