二级缓存

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容