一般用mybatis的xml或者通用mapper进行对数据库搜索数据时,都是以先以二级缓存是否开启和数据的有无,然后再是一级缓存数据的有无,最后才是找数据库吗?
图1
图2
mybatis搜索数据的过程就是将条件语句什么的变成sql语句去从数据库里查询数据,那是否可以理解为一级缓存就相当于用sql语句去数据库查?
那图1的顺序是直接从一缓开始吗?
那图2的顺序是直接从一缓开始吗?
一般用mybatis的xml或者通用mapper进行对数据库搜索数据时,都是以先以二级缓存是否开启和数据的有无,然后再是一级缓存数据的有无,最后才是找数据库吗?
图1
图2
mybatis搜索数据的过程就是将条件语句什么的变成sql语句去从数据库里查询数据,那是否可以理解为一级缓存就相当于用sql语句去数据库查?
那图1的顺序是直接从一缓开始吗?
那图2的顺序是直接从一缓开始吗?
一级缓存是作用域是sqlSession , 如果你在同一个sqlSession中调用同一个方法而且参数都是一样的, 那么第二次调用时就会走一级缓存, 而不去查数据库
二级缓存作用域是sqlSessionFactory, 需要在mybatis的配置文件中开启, 默认是开启的; 需要在接口上使用@CacheNameSpace 或者 在xml文件中用<cache>标签, 才会使用二级缓存