一级缓存:在同一个SqlSession中,同样的SQL只查询一次,并把查询结果缓存到SqlSession的内置hashMap中;
二级缓存:需要在XML映射文件中添加<cache>标签来开启二级缓存,并且指定缓存的实现类(这个实现类需要实现serializable接口)
- 一级缓存的作用范围是SqlSession生命周期,二级缓存作用范围是整个应用程序的生命周期;
- 一级缓存是通过SqlSession内置的一个hashMap来实现的,二级缓存则是通过配置cache接口来实现的;
- 一级缓存只能在同一个SqlSession内部共享,二级缓存可以在多个SqlSession之间共享;
- 一级缓存默认开启后无法关闭,二级缓存需要手动开启并进行配置;