一级缓存:
一级缓存作用域是sqlsession,一级缓存默认是开启的,同一个事务中的查询用的是同一个sqlsession,如果不加事务,那么每次查询都是用的新的sqlsession.
在不开启事务时三次查询创建了三次sqlsession
加了事务后三次查询只有第一次创建了sqlsession,后面的查询用的都是第一次的sqlsession
二级缓存 二级缓存是mapper级别的,Mybatis默认是没有开启二级缓存的。 第一次调用mapper下的SQL去查询用户的信息,查询到的信息会存放代该mapper对应的二级缓存区域。 第二次调用namespace下的mapper映射文件中,相同的sql去查询用户信息,会去对应的二级缓存内取结果。
原文:https://www.cnblogs.com/1--2/p/14841020.html