一级缓存(本地缓存):一级缓存也叫本地缓存,MyBatis的一级缓存是在会话(SqlSession)层面进行缓存的。MyBatis的一级缓存是默认开启的,不需要任何配置。
二级缓存:二级缓存是用来解决一级缓存不能跨会话共享问题的,范围是namespace级别的,可以被多个SqlSession共享(只要是同一个接口里面的相同方法,都可以共享),生命周期和应用同步。如果MyBatis使用了二级缓存,并且Mapper和select语句也配置了二级缓存,那么执行select查询的时候,MyBatis会先从二级缓存中取数据,其次才是一级缓存。即MyBatis查询数据的顺序为:二级缓存 → 一级缓存 → 数据库。
配置:
mybatis.configuration.cache-enabled=true
只要没有显示地设置cacheEnabled=false,都会用CachingExecutor装饰基本的执行器。
在Mapper.xml中配置标签:
<cache