十紫茗 2021-01-07 08:40 采纳率: 0%
浏览 31

Mybatis一级缓存和二级缓存的

一般用mybatis的xml或者通用mapper进行对数据库搜索数据时,都是以先以二级缓存是否开启和数据的有无,然后再是一级缓存数据的有无,最后才是找数据库吗?

图1

 

图2

 

mybatis搜索数据的过程就是将条件语句什么的变成sql语句去从数据库里查询数据,那是否可以理解为一级缓存就相当于用sql语句去数据库查?

那图1的顺序是直接从一缓开始吗?

那图2的顺序是直接从一缓开始吗?

  • 写回答

2条回答 默认 最新

  • 农夫丶果园 2021-01-07 11:59
    关注

    一级缓存是作用域是sqlSession , 如果你在同一个sqlSession中调用同一个方法而且参数都是一样的, 那么第二次调用时就会走一级缓存, 而不去查数据库

    二级缓存作用域是sqlSessionFactory, 需要在mybatis的配置文件中开启, 默认是开启的; 需要在接口上使用@CacheNameSpace 或者 在xml文件中用<cache>标签, 才会使用二级缓存

    评论

报告相同问题?

悬赏问题

  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题