MyBatis 3通过缓存机制来提高查询性能,可以在XML映射文件中配置缓存。MyBatis提供两种类型的缓存:本地缓存和二级缓存。

1. 本地缓存

本地缓存是MyBatis的默认缓存机制,它是基于线程的,每个线程拥有自己的本地缓存。本地缓存默认是开启的,但你可以通过在<settings>元素中配置localCacheScope来关闭它:
<settings>
  <setting name="localCacheScope" value="STATEMENT"/>
</settings>

上述配置中,localCacheScope 的值有两个选项:"SESSION" 和 "STATEMENT"。"SESSION" 表示在整个会话期间启用本地缓存,而 "STATEMENT" 表示仅在当前语句执行期间启用本地缓存。

2. 二级缓存

二级缓存是一个跨SqlSession的缓存,可以在多个会话中共享。要启用二级缓存,需要在XML映射文件的<mapper>元素中添加<cache>元素:
<mapper namespace="com.example.mapper.UserMapper">
  <cache/>
  
  <!-- 这里是映射语句的配置 -->
</mapper>

默认情况下,二级缓存是开启的。你可以通过在全局配置文件(通常是mybatis-config.xml)中配置关闭:
<configuration>
  <settings>
    <setting name="cacheEnabled" value="false"/>
  </settings>
  
  <!-- 这里是映射器的配置 -->
</configuration>

可以在映射文件中使用<cache-ref>元素引用其他命名空间中的缓存:
<cache-ref namespace="com.example.mapper.OtherMapper"/>

以上是简单的缓存配置,MyBatis还提供了更多高级的缓存配置选项,如缓存刷新、缓存装饰器等。具体配置取决于项目的需求和性能优化要求。


转载请注明出处:http://www.zyzy.cn/article/detail/7016/MyBatis