mybatis的缓存机制

Mybatis提供了查询缓存来缓存数据,从而达到提高查询性能的要求

mybatis的查询缓存分为一级缓存和二级缓存。

1.一级缓存

一级缓存是SqlSession级别的缓存

二级缓存是mapper级别的。

Mybatis通过缓存机制减轻数据压力

在操作数据库时需要构建SqlSession对象,在对象中有一个HashMap用于存储缓存数据。

当在同一个SqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存,第二次查询会从缓存中获取数据,不再去底层数据库查询,从而提高查询效率。

如果SqlSession执行了DML操作,并提交到数据库,Mybatis则会清空SqlSession中的一级缓存,不需要任何配置。

2.二级缓存二级缓存是mapper级别的缓存。在使用二级缓存时,多个SqlSession使用同一个Mapper的sql语句去操作数据库,得到的数据会存到二级缓存。相比一级缓存SqlSession,二级缓存的范围更大,多个SqlSessionk可以共用二级缓存,二级缓存是跨SqlSession

原文地址:https://www.cnblogs.com/cainame/p/10423756.html