MyBatis缓存机制

  • 一级缓存:(本地缓存)

    • 方法之间不共用

    • 与数据库同一次会话期间查询到的数据放在本地缓存中

  • 一级缓存失效的情况

    • sqlSession不同
    • SqlSession相同,但是查询条件不一样
    • SqlSession相同,但是两次查询之间执行了增删改操作
    • SqlSession相同,手动清除了一级缓存
      sqlSession.clearCache();
  • 二级缓存【全局缓存】

    • 基于namespace级别的缓存:一个namespace对应一个二级缓存
    • 查出的数据都会被默认先放在一级缓存中
      一次会话提交或者关闭后,一级缓存中的数据会被保存到二级缓存中
  • 二级缓存的使用

    • 开启全局二级缓存配置

      
      
    • 去mapper.xml中配置使用二级缓存

      
      
      
    • POJO需要实现序列化接口[implements Serializable]

你可能感兴趣的:(Mybatis学习)