mybatis缓存和mybatisplus缓存
时间: 2023-09-29 21:10:49 浏览: 112
mybatis缓存
MyBatis和MyBatis-Plus都支持缓存,但它们在缓存实现和配置上有些许差异。
MyBatis的缓存机制是基于一级缓存和二级缓存。一级缓存是SqlSession级别的缓存,它默认开启且不可关闭。在同一个SqlSession中执行相同的查询语句,第一次会从数据库中读取数据,并将结果缓存在一级缓存中。后续执行相同的查询语句时,会直接从一级缓存中获取数据,避免了再次访问数据库。一级缓存的作用范围仅限于同一个SqlSession中,当SqlSession关闭后,一级缓存也会被清空。
而二级缓存是基于Mapper级别的缓存,它可以被多个SqlSession共享。开启二级缓存需要在MyBatis配置文件中进行配置,并在Mapper接口上添加`@CacheNamespace`注解。二级缓存默认是不开启的,需要手动进行配置。二级缓存可以跨越多个SqlSession,在同一个Mapper接口的不同SqlSession中执行相同的查询语句,第一次查询会将结果缓存在二级缓存中,后续查询会直接从二级缓存中获取数据。
MyBatis-Plus是在MyBatis的基础上进行封装和增强的框架,它默认集成了MyBatis的缓存机制。因此,MyBatis-Plus的缓存机制与MyBatis基本一致。也包括一级缓存和二级缓存,使用方法与MyBatis类似。只是在使用MyBatis-Plus时,不需要手动进行二级缓存的配置,它会自动根据Mapper接口的`@Mapper`注解进行配置。
总结起来,MyBatis和MyBatis-Plus都支持一级缓存和二级缓存的使用,但在配置上有些许差异,MyBatis-Plus相对更为简便一些。
阅读全文