MyBatis的集合缓存策略主要有以下几种:
SESSION缓存:默认情况下,MyBatis会将查询结果缓存在SqlSession的缓存中,该缓存只在当前SqlSession中有效。当SqlSession关闭后,缓存数据会被清空。
LOCAL缓存:在同一个SqlSession中,如果多次查询相同的数据,MyBatis会将第一次查询的结果缓存在SqlSession的缓存中,后续查询时直接从缓存中获取数据,提高查询效率。
STATEMENT缓存:在同一个SqlSession中,如果多次执行相同的SQL语句,MyBatis会将第一次执行的结果缓存在Statement级别的缓存中,后续执行时直接从缓存中获取结果。Statement级别的缓存是跨SqlSession的,即不同SqlSession可以共享同一个Statement级别的缓存。
SECOND级缓存:SECOND级缓存是MyBatis中最常用的缓存策略,它可以跨SqlSession和跨Statement级别共享缓存数据。开启SECOND级缓存需要在Mapper配置文件中配置