mybatis的缓存机制
缓存
将数据存储在内存中,提高数据的访问速度。
经常使用而且几乎不做修改的数据适合放在缓存中。
缓存中的数据一般都要求和磁盘上的数据是同步的。
Mybaits的缓存机制
Mybatis缓存分为一级缓存和二级缓存。
一级缓存
一级缓存又叫session级别的缓存。自动开启。
案例:
第一次执行查询时,是真的执行了查询sql。
第二次执行的时候,其实是从缓存中查询,所以没有执行sql。
Mybaits在查询数据时,会首先从缓存中查询,如果查询到了就不会再向数据库查询。如果查询不到就会从数据库查询,并且向缓存放置一条查询出来的数据。
如果执行了清空缓存的操作,则缓存中数据就没有了。
关闭session,开启另外一个session。
在统一sqlSession管理范围以内同样可以刷新缓存。
修改了查询的参数或者查询的sql
第一次参数为10,查询数据会放在缓存中。
第二次参数为36,会更新缓存(将第二次查询的数据加入到缓存中);
第三次参数为10,直接从缓存获取。
如果更新了缓存中的数据,缓存会清空。
二级缓存
二级缓存是sessionFactory级别的缓存(跨越了两个session),是需要手动开启的。
手动开启方式:
开启全局缓存
配置:
在映射文件中添加配置:
测试: