MyBatis的缓存配置(Cache)

一、MyBatis的Cache配置
1、全局开关:默认是true,如果它配成false,其余各个M appe r XML 文件配成支持 cache也没用
<settings>
<setting name="cacheEnabled " value="true"/>
</settings>

2、 各个 Mapper XML文件,默认是 不采用cache。在配置文件 加一行就可以支持cache:
  <cache />


3、Mapper XML文件配置支持cache后,文件中所有的Mapper statement就支持了。此时要个别对待某条,需要:
<select id="inetAton" parameterType="string" resultType="integer" useCache=“false”>   
select inet_aton(#{name})
</select>

二、注意的几个细节
1、如果readOnly为false,此时要结果集对象是可序列化的。
<cache readOnly="false"/>

2、在SqlSession未关闭之前,如果对于同样条件进行重复查询,此时采用的是local session cache,而不是上面说的这些cache。

3、MyBatis缓存查询到的结果集对象,而非结果集数据,是将映射的PO对象集合缓存起来。

说意义不大是在于:
a、面对一定规模的数据量,内置的cache方式就派不上用场了;
b、对查询结果集做缓存并不是MyBatis框架擅长的,它专心做的应该是sql mapper。采用此框架的Application去构建缓存更合理,比如采用OSCache、Memcached啥的。

你可能感兴趣的:(java,mybatis,缓存)