mybatis的缓存机制

缓存

将数据存储在内存中,提高数据的访问速度。

经常使用而且几乎不做修改的数据适合放在缓存中。

缓存中的数据一般都要求和磁盘上的数据是同步的。

Mybaits的缓存机制

Mybatis缓存分为一级缓存和二级缓存。

一级缓存

一级缓存又叫session级别的缓存。自动开启。

案例:

mybatis的缓存机制

第一次执行查询时,是真的执行了查询sql。

第二次执行的时候,其实是从缓存中查询,所以没有执行sql。

 

Mybaits在查询数据时,会首先从缓存中查询,如果查询到了就不会再向数据库查询。如果查询不到就会从数据库查询,并且向缓存放置一条查询出来的数据。

 

如果执行了清空缓存的操作,则缓存中数据就没有了。

mybatis的缓存机制

关闭session,开启另外一个session。

mybatis的缓存机制

在统一sqlSession管理范围以内同样可以刷新缓存。

修改了查询的参数或者查询的sql

mybatis的缓存机制

第一次参数为10,查询数据会放在缓存中。

第二次参数为36,会更新缓存(将第二次查询的数据加入到缓存中);

第三次参数为10,直接从缓存获取。

如果更新了缓存中的数据,缓存会清空。

二级缓存

二级缓存是sessionFactory级别的缓存(跨越了两个session),是需要手动开启的。

 

手动开启方式:

开启全局缓存
mybatis的缓存机制

配置:

mybatis的缓存机制

在映射文件中添加配置:

mybatis的缓存机制

测试:

mybatis的缓存机制