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可以从缓存中命中
二级缓存不推荐使用,无需太多关注