Mybatis的缓存
作为一个dao层框架,Mybatis是有缓存的,以减轻数据库的负担。
Mybatis的执行流程:
- 读取MyBatis配置文件 mybatis-config.xml
- 加载映射文件 mapper.xml
- 创建会话工厂 SqlSessionFactory
- 创建会话 SqlSession
- Executor执行器
- MappedStatement 对象 (输入参数 的配置,输出参数的配置)
- 数据库
Mybatis的缓存分为两级
一级缓存
它的一级缓存作用域是在同一个SqlSession。
- Mybatis执行一个Sql语句时,会把返回值缓存在SqlSession中,
- 当又一次执行该语句时,MyBatis是从SqlSession中把第一次缓存的值直接返回
- 且执行增删改的操作时,缓存会被清空。
一级缓存是Mybatis默认开启的
二级缓存
Mybatis二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace。
二级缓存区域是根据mapper的namespace划分的,