其他分享
首页 > 其他分享> > Mybatis知识小汇(13)——缓存(二级缓存)

Mybatis知识小汇(13)——缓存(二级缓存)

作者:互联网

文章目录

二级缓存

步骤:

  1. 开启全局缓存

    <settings>
        <!--        显示开启全局缓存,默认也是true-->
        <setting name="cacheEnabled" value="true"/>
    </settings>
    
  2. 在要使用二级缓存的Mapper中定义
    需要实现序列化

    <cache/>
    

    也可以

    <!--    在当前Mapper.xml中使用二级缓存-->
    <cache
           eviction="FIFO"
           flushInterval="60000"
           size="512"
           readOnly="true"/>
    

3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zumyVHFh-1613533755250)(Mybatis.assets/image-20210217113119674.png)]

  1. 测试

    1. 未开启二级缓存

      public class UserMapperTest {
          @Test
          public void selectById(){
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              SqlSession sqlSession1 = MybatisUtils.getSqlSession();
      
              UserMapper mapper = sqlSession.getMapper(UserMapper.class);
              UserMapper mapper1 = sqlSession1.getMapper(UserMapper.class);
      
              User user = mapper.selectById(1);
              System.out.println(user);
              sqlSession.close();
              System.out.println("==================================================");
              User user1 = mapper1.selectById(1);
              System.out.println(user1);
      
              System.out.println(user == user1);
              sqlSession1.close();
          }
      }
      

在这里插入图片描述

  1. 开启二级缓存

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5gpfdE3I-1613533755253)(Mybatis.assets/image-20210217114551771.png)]

小结:

  1. 只要开启了二级缓存,在同一个Mapper下都有效
  2. 所有数据都会先放在一级缓存中
  3. 当提交数据或者关闭连接时,才会放到二级缓存中
    上一节–>一级缓存
    如有不对的地方欢迎指出,共同进步!

标签:13,缓存,小汇,UserMapper,System,println,二级缓存,Mybatis,out
来源: https://blog.csdn.net/weixin_45734378/article/details/113832653