EHCache缓存针对于MyBatis的二级缓存。
MyBatis默认二级缓存是SqlSessionFactory级别的。
org.mybatis.caches
mybatis-ehcache
1.2.1
org.slf4j
slf4j-api
ch.qos.logback
logback-classic
1.4.11
test
配置文件名必须为ehcache.xml
使用SLF4J日志时,log4j日志文件会失效,需要配置SLF4J的具体实现logback来打印日志。
创建logback的配置文件logback.xml
[%d{HH:mm:ss.SSS}] [%-5level] [%thread] [%logger]
[%msg]%n
public class CacheTest {
private static final Logger LOGGER = LoggerFactory.getLogger(CacheTest.class);
@Test
public void test2() {
try {
//读取MyBatis核心配置文件中的信息
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//通过SqlSessionFactory创建SqlSession对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession1 = sqlSessionFactory.openSession(true);
SqlSession sqlSession2 = sqlSessionFactory.openSession(true);
CacheMapper mapper1 = sqlSession1.getMapper(CacheMapper.class);
List emps1 = mapper1.getEmpByDeptId(1);
emps1.forEach(System.out::println);
//关闭sqlSession的时候才会把保存在一级缓存中的数据保存到二级缓存中
sqlSession1.close();
CacheMapper mapper2 = sqlSession2.getMapper(CacheMapper.class);
List emps2 = mapper2.getEmpByDeptId(1);
emps2.forEach(System.out::println);
//关闭sqlSession的时候才会把保存在一级缓存中的数据保存到二级缓存中
sqlSession2.close();
} catch (IOException e) {
LOGGER.error("测试方法:test2异常:{0}",e);
}
}
}
输出结果:
参与评论
手机查看
返回顶部