一级缓存:
一级缓存 Mybatis的一级缓存是指SQLSession,一级缓存的作用域是SQLSession, Mabits默认开启一级缓存。在同一个SqlSession中,执行相同的SQL查询时;第一次会去查询数据库,并写在缓存中,第二次会直接从缓存中取。当执行SQL时候两次查询中间发生了增删改的操作,则SQLSession的缓存会被清空。
二级缓存:
MyBatis的二级缓存是Application(mapper)级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。SqlSessionFactory层面上的二级缓存默认是不开启的,二级缓存的开席需要进行配置,实现二级缓存的时候,MyBatis要求返回的POJO必须是可序列化的。 也就是要求实现Serializable接口,配置方法很简单,只需要在映射XML文件配置就可以开启缓存了
![](https://i-blog.csdnimg.cn/blog_migrate/7b44db483cce519b395d3d52253797cd.png#pic_center)
![](https://i-blog.csdnimg.cn/blog_migrate/fe4ed8088b81375cc8550041b09fa63a.png#pic_center)
![](https://i-blog.csdnimg.cn/blog_migrate/36e86ebe2e878262f2dfa8af6939af78.png#pic_center)
![](https://i-blog.csdnimg.cn/blog_migrate/172908dfdccb86e6c14a4f727863f3b4.png#pic_center)
关注小编微信公众号(java交流),回复520免费领取Java面试资料!
![](https://i-blog.csdnimg.cn/blog_migrate/8459ba2622577e62a0db7f6b7378f157.bmp#pic_center)