第十四章MyBatis缓存

概念

  • 各大关系型数据库的数据一般都是存储在文件当中,持久化存储
  • 如果多次执行一条一句每次都要重新查询数据库这是非常浪费性能的
  • MyBatis的缓存机制,将查询的数据加入缓存中下次查询直接从缓存中拿数据。提高性能

MyBatis的缓存

  • 一级缓存:将查询数据缓存到SqlSession
  • 二级缓存:将查询数据缓存到SqlSessionFactory
  • 第三方缓存:集成其他的缓存工具

缓存只针对select语句
同一条查询语句执行多次,后面的会走缓存
优先走一级缓存然后走二级


一级缓存

  • 作用于SqlSession

1. 不走缓存

  • 对与一级缓存SqlSession对象不是同一个
  • 查询条件不一样

2. MyBatis缓存失效

  • 一级缓存在查询语句之间执行sqlSession的clearCache()方法
  • 一级缓存在查询语句之间执行删除,增加,修改。不论那张表一级缓存都会清空

二级缓存

  • 作用于SqlSessionFactory

1. 开启缓存

  • 默认为true

    

  • 需要缓存的sql配置文件加入

  • 缓存的类型要实现Serializable
  • 执行完sql语句后必须sqlSession.close();会将缓存从一级取出来放入二级

2. 缓存失效

  • 执行新增,修改,删除语句

你可能感兴趣的:(MyBatis,mybatis,缓存)