11.7 MyBatis缓存机制 -《SSM深入解析与项目实战》
项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm
文章目录
11.7 MyBatis缓存机制
从前面可以知道,MyBatis中自带的缓存有一级缓存和二级缓存,在下面,针对这两种缓存再深入一点进行介绍。
11.7.1 一级缓存
Mybatis的一级缓存是指Session的缓存。一级缓存的作用域默认是一个SqlSession中。一级缓存是默认开启的。也就是说,在同一个SqlSession中,执行相同的查询SQL,第一次会去数据库进行查询,并写到缓存中。第二次以后是直接去缓存中取。当执行SQL查询中间发生了增删改的操作,MyBatis会把SqlSession的缓存清空。
一级缓存的范围有SESSION和STATEMENT两种,默认是SESSION。
在有些特定的场景下,我们不需要使用一级缓存,可以把一级缓存的范围指定为STATEMENT,这样每次执行完一个Mapper中的语句后都会将一级缓存清除。
如果需要更改一级缓存的范围,可以在My