Mybatis缓存

   Mybaits像hibernate一样提供两种缓存机制一种是session机制的缓存,默认是以及缓存另一种是全局缓存机制,你也可以理解是SqlSessionFactory域的缓存,二级缓存你需要在mapper中加入<cache/>才能实现.其中缓存有给予自动配置也有自定义实现.

 重要缓存时POJO类需要序列化

1.二级缓存详细配置

<cache
 eviction="FIFO"//缓存算法,先入先出,此外也可以是LRC最近最少访问,SOFT软引用(根据垃圾收集器状态和删除对象的规则软引用),弱引用(更积极地根据垃圾收集器删除对象的状态弱引用和规则).
 flushInterval="60000"//多长时间刷新一次
 size="512"//缓存大小
 readOnly="true"/>

总结一句话就是:查询被缓存,增删改被更新.

2.自定义缓存.

<cache type="com.domain.something.MyCustomCache"/>

  实现接口

public interface Cache {
 String getId();
 int getSize();
 void putObject(Object key, Object value);
 Object getObject(Object key);
 boolean hasKey(Object key);
 Object removeObject(Object key);
 void clear();
}

  3.你可以具体指定某个具体的方法如何与缓存交互.

<选择…flushCache = " false " useCache = " true " / >
<插入…flushCache = " true " / >
<更新…flushCache = " true " / >
<删除…flushCache = " true " / >

 4. 共享命名空间里缓存配置

<cache-ref namespace="com.someone.application.data.SomeMapper"/>

 

 

 

  

 

你可能感兴趣的:(Mybatis缓存)