> 文章列表 > mybatis缓存机制

mybatis缓存机制

mybatis缓存机制

一级缓存:mybatis自带的缓存机制,缓存在每一个SqlSession中

一级缓存失效:

  第一次DQL和第二次DQL之间做了以下两件事中的任意一件

    1.执行了sqlSession中的clearCache()方法

    2.执行了insert或delete或update语句

二级缓存的范围是SqlSessionFactory

  使用二级缓存需要具备以下几个条件:

    1.<setting name="cacheEnabled" value="True">全局性地开启或关闭所有映射器配置文件中的已配置的所有缓存,默认为true,位置为mybatis-config.xml

    2.在需要使用二级缓存的SqlMapper.xml文件中添加配置:<cache/>

    3.使用二级缓存的实体类对象必须是可序列化的,也就是必须实现java.io.Serializable接口

    4.SqlSession对象关闭或提交之后,一级缓存中的数据才会被写到二级缓存当中,此时二级缓存才可用

一级缓存失效:

  只要两次查询之间出现了增删改操作,二级缓存就会失效,一级缓存也会失效

 

二级缓存可以选择第三方如Ecache