mybatis缓存

mybatis缓存分两种,一级缓存与二级缓存

一级缓存

作用域:session

说明:在同一个session中,如果执行相同的sql语句(语句及参数),就不执行sql,而是从缓存中直接返回,否则,从数据库中查询

默认开启且无法关闭

如何清除缓存?

1. sqlSession.clearCache() 

2. 执行update、insert、delete的时候,会清空缓存

二级缓存

二级缓存就是global caching,它超出session范围之外,可以被所有sqlSession共享,它的实现机制和mysql的缓存一样,开启它只需要在mybatis的配置文件开启settings里的

作用域:mapper或者namespace(因为不同mapper的namespace不同)

说明:同一个mapper(同一个namespace)中查询sql可以从缓存中命中

二级缓存不推荐使用,无需太多关注

原文地址:https://www.cnblogs.com/yanze/p/10175017.html