MyBatis 一级缓存和二级缓存详解
MyBatis 一级缓存和二级缓存是指 MyBatis 框架中的两种缓存机制。
-
一级缓存:也称为本地缓存,是 SqlSession 级别的缓存。在同一个 SqlSession 中,如果执行相同的 SQL 语句,MyBatis 会从缓存中获取数据,不会再次发送 SQL 语句到数据库进行查询。一级缓存是默认开启的,可以使用 SqlSession.clearCache() 方法清空缓存。
-
二级缓存:也称为全局缓存,是 Mapper 级别的缓存。多个 SqlSession 可以共享同一个 Mapper 的二级缓存,可以减少数据库的访问次数。二级缓存需要手动开启,可以在 Mapper.xml 文件中配置。默认情况下,MyBatis 不会开启二级缓存,需要在配置文件中配置 '
' 元素来开启。可以使用 SqlSessionFactory.getConfiguration().getCacheNames() 方法获取所有开启的二级缓存名称,使用 SqlSessionFactory.getConfiguration().getCache(cacheName) 方法获取指定名称的缓存实例。可以使用 Cache.clear() 方法清空缓存。
原文地址: https://www.cveoy.top/t/topic/oi3p 著作权归作者所有。请勿转载和采集!