一级缓存:(1)一级缓存也叫本地缓存,由于它存在SqlSession中,所以只有使用同一个SqlSession对象操作数据库时才能共享一级缓存;(2)一级缓存默认是开启的,所以不需要任何的配置;
二级缓存:(1)二级缓存也叫全局缓存,数据存放在SqlSessionFactory中,只要是同一个工厂对象创建的SqlSession,在进行查询时就能共享数据;(2)与一级缓存不同的是,一级缓存存放的是对象,二级缓存存放的是对象的数据;(3)二级缓存默认不开启,要手动开启(POJO实体类实现Serializable接口、在配置文件中配置settings、在映射文件中填入<cache />),并且开启后数据先存放在一级缓存中,只有一级缓存清空后(SqlSession对象调用commit()、close()或执行增删改操作),数据才会存到二级缓存中,注意一点,如果SqlSession调用clearCache()方法的话,是无法将数据存放到二级缓存中的;