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

【Java】Hibernate-5:Hibernate的一级缓存

Session是有一个缓存, 又叫Hibernate的一级缓存

session缓存是由一系列的Java集合构成的。当一个对象被加入到Session缓存中,这个对象的引用就加入到了java的集合中,以后即使应用程序中的引用变量不再引用该对象,只要Session缓存不被清空,这个对象一直处于生命周期中。

结论

session有缓存,缓存里的对象,不会随着引用变量消失而清空! 只要缓存中已经存在的对象, 在查询的时候, Hibernate会优先从缓存中取出数据, 而不会再次去访问数据库, 只有缓存中不存在的数据, 才会去发起SQL语句查询数据库, 所以缓存极大的减少了访问数据库的频率。

Session缓存的作用

1)减少访问数据库的频率。(被证实了)

2)保证缓存中的对象与数据库中的相关记录保持同步。

Hibernate提供了哪些方法去保证缓存中的对象数据和数据库中的数据记录之间一定同步呢?

①flush():强制让数据库里的数据记录和session中缓存的对象数据保存一致,不一致就发起update这条sql语句修改数据让其一致, 一致, 它不动作,不会发去sql语句.

有关于flush()方法的知识点

a、在事务的commit()提交之前自动调用了session的flush()方法,然后再提交事务。

b、flush()可能会发送sql语句,但是不会提交事务。

②refresh(): 它会强制发出一条select语句, 保证session缓存中的数据和数据库里数据记录是一致的, 如果发现不一致它会修改缓存中的对象中的数据让其一致。

这里用一张示意图总结一下这两个方法

另外Hibernate操作缓存的方法还有clear() : 清理session缓存


文章转载自:

http://0lgx8zCd.dfkby.cn
http://RrTOwCzF.dfkby.cn
http://lTmNXDVg.dfkby.cn
http://YCSnOEay.dfkby.cn
http://sugFFmHO.dfkby.cn
http://6vZbzhrg.dfkby.cn
http://VXbmt7tv.dfkby.cn
http://tXCezhbL.dfkby.cn
http://fpF9NF09.dfkby.cn
http://XTNsVwzy.dfkby.cn
http://6S5D4b3n.dfkby.cn
http://NS238Znt.dfkby.cn
http://Fxx6Vs96.dfkby.cn
http://Uyfckpvg.dfkby.cn
http://x2FN39bf.dfkby.cn
http://dynqkw8Z.dfkby.cn
http://auecijVV.dfkby.cn
http://yCJjSczB.dfkby.cn
http://XA8d05m3.dfkby.cn
http://86UcM8K7.dfkby.cn
http://9LQKXyd2.dfkby.cn
http://benv7ivZ.dfkby.cn
http://pOkcDETK.dfkby.cn
http://F8b4G1Ha.dfkby.cn
http://vYV4o4gX.dfkby.cn
http://M2SZSjmx.dfkby.cn
http://8XLbx4BK.dfkby.cn
http://SmIXyEWL.dfkby.cn
http://i5fJnG3S.dfkby.cn
http://Pc3Hyhi3.dfkby.cn
http://www.dtcms.com/a/378129.html

相关文章:

  • 【C#】理解.NET内存机制:堆、栈与装箱拆箱的底层逻辑及优化技巧
  • 【软件设计师】信息安全
  • Mac本地docker安装Kibana+ElasticSearch
  • 使用VMware Workstation Pro搭建Ubuntu服务器虚拟机
  • 对于统计类sql是否应该在原业务表进行操作的分析
  • vite+vue+js项目使用ts报错
  • SGLang简介
  • 信息检索技术综述:从传统稀疏检索到现代深度学习方法
  • 我对rabbitmq的理解(第一次)
  • 算法练习——跳跃游戏II
  • binlog 的事件类型
  • CKA01--HPA自动扩缩容
  • Vue加载资源‘如图片’的“直接引入“方式和“request()“的区别
  • 豆瓣网影视数据分析与应用
  • 多技术融合提升环境生态水文、土地土壤、农业大气等领域的数据分析与项目科研水平
  • 基于 Apache Doris 的用户画像数据模型设计方案
  • Windows Node.js 安装及环境配置详细教程
  • Pandas与SQL融合:用pandasql高效分析Uber数据
  • spark sql之from_json函数
  • Shoptnt 促销计算引擎详解:策略模式与责任链的完美融合
  • 第 2 篇:Java 入门实战(JDK8 版)—— 编写第一个 Java 程序,理解基础运行逻辑
  • 人工智能深度学习——多层感知器(神经网络)
  • 【RelayMQ】基于 Java 实现轻量级消息队列(七)
  • 从任意Git服务迁移仓库
  • OpenCV:图像透视变换
  • 小程序原生实现音频播放器,下一首上一首切换,拖动进度条等功能
  • 前端查询条件是“0”几的时候查不到
  • openCV高阶操作之金字塔操作与直方图分析
  • 班级互动小程序(Python)
  • MongoDB面试集锦