当前位置: 首页 > news >正文

MyBatis二级缓存开启条件

MyBatis缓存为俩层体系。分为一级缓存和二级缓存。

一级缓存:

        一级缓存默认开启,一级缓存的作用域是SqlSession级别的,这意味着当你更换SqlSession之后就不能再利用原来的SqlSession的一级缓存了。不同的SqlSession之间的一级缓存是隔离的。

但是在开发中更换SqlSession是更频繁的操作,所以一级缓存对我们的意义不太大。

使用了一级缓存,只查询了一次:

更换SqlSession后失效:

进行了俩次数据库查询:

二级缓存:

二级缓存的作用域是Mapper级别的,可以在多个SqlSession之间共享。

MyBatis二级缓存默认是关闭的。开启条件有四个:

  1. 在配置文件中通过settings配置cacheEnabled为true,但是当前MyBatis中已经默认配置为true,所以不用写,是一个建议性的配置。
  2. 在mapper文件中加入cache标签:
  3. 在sql标签中配置useCache属性,这个配置也可以省略。
  4. 存在事务。MyBatis自动开启事务,所以我们只需要将事务进行commit提交即可。

总结:满足上述第二点(cache标签)和第四点配置(存在事务)即可开启MyBatis二级缓存:

http://www.lryc.cn/news/367471.html

相关文章:

  • golang 不用sleep如何实现实现每隔指定时间执行一次for循环?
  • 【el-tooltips改造】Vue实现文本溢出才显示el-tooltip,否则不显示el-tooltips
  • 【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
  • vue使用html2canvas截图下载时,存在svg或者img或者特殊字体时截图不全的解决办法
  • 机器学习----奥卡姆剃刀定律
  • 【设计模式】行为型设计模式之 模板方法模式
  • 智能合约中断言失败
  • flink读取hive写入http接口
  • 【论文阅读】MODELING AND SOLVING THE TRAVELING SALESMAN PROBLEM WITH PRIORITY PRIZES
  • 【CS.SE】使用 docker pull confluentinc/cp-kafka 的全面指南
  • STM32快速入门(ADC数模转换)
  • Linux环境在非root用户中搭建(java-tomcat-redis)
  • Unity 之 代码修改材质球贴图
  • spark-3.5.1+Hadoop 3.4.0+Hive4.0 分布式集群 安装配置
  • Matlab实现GWO-CNN-LSTM-Mutilhead-Att灰狼算法卷积长短期记忆神经网络融合多头注意力机制预测 SCI顶级优化
  • RTKLIB之RTKPLOT画图工具
  • 本地部署 RAGFlow
  • php常用数据库操作
  • 判断经纬度是否在某个城市内
  • Java——数组排序和查找
  • Flutter中防抖动和节流策略
  • 设计模式-中介者(调停者)模式(行为型)
  • HC-05蓝牙模块配置连接和使用
  • 云上小知识:企业选择云服务的小Tips
  • 生成式人工智能 - Stable Diffusion 都使用了哪些技术?
  • React的useState的基础使用
  • 接口自动化Requests+Pytest基础实现
  • 深入解析Kafka消息传递的可靠性保证机制
  • jEasyUI 设置排序
  • MySQL之查询性能优化(十二)