mybatis 做查询缓存
时间: 2023-11-14 17:05:57 浏览: 81
Mybatis 通过查询缓存来提高查询性能,可以将查询结果缓存到内存中,供后续相同的查询使用。
Mybatis 的查询缓存分为两种:本地缓存和二级缓存。
本地缓存是指在同一个 SqlSession 内,多次执行相同的查询语句,只查询一次数据库,将查询结果缓存到内存中,下次查询时直接从内存中获取结果。
二级缓存是指将查询结果缓存到外部缓存中,例如 Ehcache、Redis 等,多个 SqlSession 可以共享同一个缓存,当某个 SqlSession 执行查询时,如果缓存中有相同的查询结果,则直接从缓存中获取,提高查询效率。
开启二级缓存需要在 Mybatis 配置文件中进行配置,例如:
```xml
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
```
在 Mapper 文件中,可以通过 `cache` 属性开启本地缓存,例如:
```xml
<select id="selectUserById" resultType="User" parameterType="int" cache="true">
select * from user where id = #{id}
</select>
```
需要注意的是,开启缓存需要权衡查询结果的实时性和缓存的更新策略,避免数据不一致的情况。同时,需要注意缓存的大小和生命周期,避免缓存占用过多内存或过期时间过长导致查询效率降低。
阅读全文