MyBatis一级缓存,默认是开启的
同一个sqlsession会话,执行相对的SQL操作,那么MyBatis会使用一级缓存的数据,而不会去数据库中执行SQL语句。
除非对数据有了增删改的操作,那么MyBatis一级缓存会清空缓存。
MyBatis二级缓存,默认是关闭的
⼆级缓存是namespace级别的,多个SqlSession去操作同⼀个namespace下的
Mapper的sql语句,多个SqlSession可以共⽤⼆级缓存,如果两个mapper的namespace相同,(即使是两个mapper,那么这两个mapper中执⾏sql查询到的数据也将存在相同的⼆级缓存区域中,但是最后是每个Mapper单独的名称空间)
基于PerpetualCache 的 HashMap本地缓存,可⾃定义存储源,如 Ehcache/Redis等
缓存淘汰策略:会使⽤默认的 LRU 算法来收回(最近最少使⽤的)
<!--开启mapper的namespace下的⼆级缓存-->
<!