Java面试题

题目

讲一讲 Mybatis 的一级、二级缓存。

答案

mybatis 这边默认的是打开的一级缓存。一级缓存是针对 mybatis 文件里面的方法维度的,作用域为 session,当 session flush 或者 close 的时候,该 session 域里面的所有数据将清空。而二级缓存是针对 xml 文件里面的 namespace 维度的。

对于缓存数据更新机制,当某一个作用域(一级缓存/二级缓存)的进行了 C/U/D 操作后,默认该作用域下所有 select 中的缓存将被 clear。