二级缓存

作者: Xr丶_c967 | 来源:发表于2017-12-04 12:31 被阅读0次

创建两个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">

相关文章

网友评论

    本文标题:二级缓存

    本文链接:https://www.haomeiwen.com/subject/qfptbxtx.html