首页 > 其他 > 详细

MyBatis的缓存

时间:2020-03-30 12:22:47      阅读:65      评论:0      收藏:0      [点我收藏+]

原文:https://blog.csdn.net/AdminGuan/article/details/99291773

一级缓存
一级缓存指Session缓存;作用域同一个SqlSession内;默认开启一级缓存。也就是在同一个SqlSession中,执行相同的查询SQL,第一次会去数据库进行查询,并写到缓存中; 第二次以后是直接去缓存中取。 当执行SQL查询中间发生了增删改的操作,MyBatis会把SqlSession的缓存清空。

同一个sqlSession内第二次查询是到缓存中查询,不用再连一次数据库查询,只要一条查询语句

 

 

 

 技术分享图片

同一个sqlSession内对数据进行修改(增、删、改)会把缓存清空,第二次查询要重新到数据库中查询,有两条查询语句

技术分享图片

 

 

二级缓存

二级缓存指mapper映射文件;作用域是同一个namespace下的mapper映射文件内容,多个SqlSession共享;需要手动设置启动二级缓存。

开启二级缓存步骤:

① 在 mybatis-config.xml 中如下配置

 

 

 

<settings>
  <!-- 开启二级缓存 -->
  <setting name="cacheEnabled" value="true"/>
</settings>

技术分享图片

 

 

② 在 entity 中实现序列化接口

// implements Serializable --> 实现序列化接口
public class User implements Serializable {
 
    private static final long serialVersionUID = 1L;
 
}

技术分享图片

 

 

③ 在 UserMapper.xml 中开启二级缓存

<!-- 开启二级缓存 -->
<cache readOnly="true"/>

技术分享图片

 

 不同的sqlSession内第二次查询是到mapper映射文件查询,只要一条查询语句

技术分享图片

 

 二级缓存对数据进行修改(增、删、改)同样会把缓存清空,第二次查询要重新到数据库中查询,有两条查询语句

技术分享图片

 

MyBatis的缓存

原文:https://www.cnblogs.com/lvchengda/p/12597592.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!