Mybatis缓存

缓存概述

提升运行效率(让应用程序减少对数据库的访问)


默认SqlSession缓存开启

1
2
3
4
5
1. 一旦你创建select标签 就会有一个对应statement对象

2. 同一个SqlSession对象调用同一个select --> 只有第一次访问数据库(后面都是将查询结果缓存到SqlSession缓存区)

3. 有效范围: 必须是同一个SqlSession对象(多个sqlsession对象就会执行多次!!)

SqlSessionFactory 二级缓存

引入原因

//问题概述:
    以前要是写两个sql语句两个sqlsession对象 --就会有两个缓存区域 --然后执行就会有两次执行(效率低)

//使用二次缓存:
    让两个sqlsession是获取同一个factory --就只有一个大的单独的缓存区域 -- 就只有一次执行

使用注意事项

1. 有效范围: 
     就是同一个factory的所有SqlSession都可以获取

2. 使用范围
     主要用于数据频繁使用但是很少修改

3. 使用步骤
     只需要在mapper.xml的select标签中添加
            <cache readOnly="true"></cache>

4. 当SqlSession对象进行close() / commit()  --> sqlsession缓存的数据刷  --> SqlSessionFactory缓存区

缓存流程


×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 缓存概述
  2. 2. 默认SqlSession缓存开启
  3. 3. SqlSessionFactory 二级缓存
    1. 3.1. 引入原因
    2. 3.2. 使用注意事项
  4. 4. 缓存流程
,