Java

二级缓存

2017-12-04  本文已影响0人  Xr丶_c967

创建两个SqlSession,获取两个mapper后,先后调用同一个方法执行同一条SQL,查看日志中输出SQL语句执行的次数,会发现两条SQL执行

对于不同的SqlSession对象,缓存是不能共享的,为了让SqlSession对象之间能够共享相同的缓存,有时需要开启二级缓存

实现二级缓存

要求POJO是一个可序列化的对象,必须实现java.io.Serializable接口

映射文件上加入<cache/>

加入cache后,mybatis就会对命名空间下所有的select元素SQL查询结果进行缓存,而其中的insert,delete,update语句在操作时会刷新缓存。


<select flushCache="false" useCache="true"/>

<insert  flushCache="ture" />

<update flushCache="ture"/>

<delete flushCache="ture"/>

以上是默认配置,可以根据需要自行修改,flushCache属性,对于四个都有效,表示执行后是否刷新缓存,useCache属性则是select特有的,代表是否需要使用缓存


引用其他的映射缓存

<cache-ref  namespace="com.xu.mapper.xxxxMapper">

上一篇 下一篇

猜你喜欢

热点阅读