一级缓存
- Mybatis的一级缓存在session上,只要通过session查过的数据,都会放在session上,下一次再查询相同id的数据,都直接冲缓存中取出来,而不用到数据库里去取了。
- session.commit(); 提交事务,清空缓存
二级缓存
- Mybatis二级缓存在SessionFactory上,如果两次查询基于同一个SessionFactory,那么就从二级缓存中取数据,而不用到数据库里去取了。
- 开启二级缓存需要在mybatis-config.xml内<settings> 标签下添加<setting name="cacheEnabled" value="true"/>
- 在需要缓存的类的mapper.xml内<mapper>标签下添加<cache/>
- 并且需要pojo类继承 implements Serializable 序列化接口,目的是如果缓存到达一定数量需要固化到硬盘上