MyBatis 一级缓存与二级缓存

时间:2022-07-15 19:25:02

MyBatis一级缓存

  MyBatis一级缓存默认开启,一级缓存为Session级别的缓存,在执行以下操作时一级缓存会清空

  1.执行session.clearCache();

  2.执行CUD操作

  3.session.close(); //不是同一个Session对象了

MyBatis二级缓存

  需要配置<cache></cache>

  是一个映射文件级的缓存

  使用Mybatis二级缓存时查询的对象实体类必须序列化实现(实现Serializable接口)

  二级缓存使用时 必须使用session.commit(),即提交事务后,才会触发二级缓存

  使用二级缓存使用两个Session查询,查询时会只发一次SQL