mybatis缓存(纯概念)

945 阅读1分钟

缓存

什么是缓存

将对象/数据存于内存之中,内存释放后,对象/数据也就消失

为什么用缓存

减少和数据库的交互(主要是查询),提升效率

缓存的适用场景

  • 适用场景:

    • 数据比较固定,对结果影响不大的
  • 不适用场景

    • 数据多变,对结果影响大的。例如:股票,抢购商品

一级缓存

  • 指SqlSession对象的缓存,SqlSession对象会提供一个内存空间,以Map的结构形式存放查询的结果,当再次查询时,mybatis会优先在SqlSession对象中查找,如果没有查到目标数据,然后会从数据库中进行查询,当SqlSession对象被释放后,缓存的对象也会被释放

  • 一级缓存是SqlSession对象内的缓存,因此调用SqlSession的关闭,删除,更新,Commit(),Clear()等方法,缓存也会被清空

二级缓存

  • 指SqlSessionFactory对象的缓存,由同一个指SqlSessionFactory对象的缓存创建的SqlSession对象,共享其二级缓存,二级缓存中存储的json格式数据

二级缓存的使用

  1. 让Mybatis框架支持二级缓存,在SqlMapperConfig.xml中配置
  2. 让当前的映射文件支持二级缓存,在啊dao.xml中配置
  3. 让当前的操作支持而二级缓存,在select标签中配置

一级缓存和二级缓存的区别

  • 一级缓存中存储的是对象,二级缓存中存储的是数据

缓存的使用,请见下回分解...

本文使用 mdnice 排版