------------------siwuxie095

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

什么是缓存

 
 

 
 

缓存是介于应用程序和永久性数据存储源(如:硬盘上的文件

数据库)

之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提

高应用的运行性能

 
 

 
 

针对数据库,则:

 
 

数据是存到数据库中的,而数据库本身也是文件系统,使用流方式操作文

件的效率并不是很高

 
 

如果把数据存到内存里面,不需要使用流方式,就可以直接读取内存中的

数据,提高读取的效率

 
 

 
 

 
 

 
 

 
 

Hibernate 缓存

 
 

1、Hibernate 框架中提供了很多优化方式,Hibernate 缓存正是其中之一

 
 

 
 

2、Hibernate 缓存的特点

 
 

(1)第一类:Hibernate 的一级缓存

 
 

1)Hibernate 的一级缓存默认是打开的

 
 

2)Hibernate 的一级缓存使用范围是 Session 的范围,即 从 Session 创建到 Session 关闭

 
 

3)Hibernate 的一级缓存中存储的数据必须是持久态数据

 
 

 
 

(2)第二类:Hibernate 的二级缓存

 
 

1)Hibernate 的二级缓存目前已经不使用了,替代技术:Redis

 
 

2)Hibernate 的二级缓存默认是关闭的,需要进行配置

 
 

3)Hibernate 的二级缓存使用范围是 SessionFactory 的范围

 
 

 
 

 
 

 
 

 
 

验证
Hibernate 一级缓存的存在

 
 

 
 

1、验证方式

 
 

(1)先根据
uid=1 进行查询,返回实体类对象

 
 

(2)再根据
uid=1 进行查询,返回实体类对象

 
 

 
 

 
 

运行一览:

 
 

 
 

 
 

第一次执行
get 方法之后,发送 sql 语句,查询数据库

 
 

第二次执行
get 方法之后,没有发送 sql 语句,查询一级缓存

 
 

 
 

 
 

 
 

 
 

Hibernate 一级缓存执行过程

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Hibernate 一级缓存特性

 
 

 
 

1、持久态对象能够自动更新数据库

 
 

 
 

 
 

 
 

2、执行过程

 
 

 
 

 
 

 
 

 
 

 
 

 

 

 补:这篇文章本应该在 实体类对象的三种状态 和 Hibernate

事务代码规范写法 之间(分类:Hibernate)

 

 
 

 
 

 
 

 
 

 
 

 

【made by siwuxie095】

Hibernate一级缓存(补)的更多相关文章

  1. hibernate一级缓存

    理解 Hibernate 一级缓存 Hibernate 一级缓存默认是打开,不需要任何的配置.实际上,你无法强制禁止它的使用. 如果你理解了一级缓存实际上和会话是关联的,就很容易理解一级缓存.总所周知 ...

  2. Hibernate一级缓存(基于查询分析)

    首先我们应该弄清什么是hibernate缓存:hibernate缓存是指为了降低应用程序对物理数据源的访问频次,从而提高应用程序的运行性能的一种策略.我们要将这个跟计算机内存或者cpu的缓存区分开. ...

  3. hibernate一级缓存及对象的状态

    hibernate中实体类对象的状态 在hibernate中实体类对象有三种状态 (1)瞬时态(临时态) 瞬时态:即我们自己创建一个对象,还没有保存到数据库就叫临时态,其实也可以说是对像没有id值,跟 ...

  4. Hibernate一级缓存测试分析

    Hibernate 一级缓存测试分析 Hibernate的一级缓存就是指Session缓存,此Session非http的session会话技术,可以理解为JDBC的Connection,连接会话,Se ...

  5. 转载 hibernate一级缓存和二级缓存的区别

    文章来源:http://blog.csdn.net/defonds/article/details/2308972     hibernate一级缓存和二级缓存的区别 缓存是介于应用程序和物理数据源之 ...

  6. Hibernate一级缓存和三种状态

    Hibernate一级缓存又称session缓存,生命周期很短,跟session生命周期相同. 三种状态:1.transient(瞬时态):刚new出来的对象,既不在数据库中,也不在session管理 ...

  7. hibernate一级缓存的源码初窥

    hibernate的一级缓存的存在使得hibernate可以在操作实体化对象的时候减少对于数据库的访问.hibernate的一级缓存实际上就是指的session缓存,它的生命周期和session相同. ...

  8. Hibernate 一级缓存的陷阱

    最近公司的应用经常报OOM,一开始我以为是公司业务数据太多,导致内存不够,所以只是简单的把容器的内存加大.撑了几天后这个错仍然被报出来.后来我仔 细分析过项目代码后,没有发现有任何引起内存泄漏的地方. ...

  9. Hibernate <一级缓存>

    Hibernate缓存分为三级: 一级缓存:基于事务级别(内存)的缓存,也可以成为session级别缓存 二级缓存:依赖于第三方,当请求一个对象时,先在缓存里面查找,如果没有就执行查询语句 查询缓存: ...

随机推荐

  1. 操作系统-容器-Docker:如何将应用打包成为 Docker 镜像?

    ylbtech-操作系统-容器-Docker:如何将应用打包成为 Docker 镜像? 1.返回顶部 1. 虽然 DockerHub 提供了大量的镜像,但是由于企业环境的多样性,并不是每个应用都能在 ...

  2. HTML5: SVG (可缩放矢量图形)

    ylbtech-HTML5: SVG (可缩放矢量图形) 可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式.它由万维网联盟制定,是一个开放标准. 1. ...

  3. python中将HTTP头部中的GMT时间转换成datetime时间格式

    原文: https://blog.csdn.net/zoulonglong/article/details/80585716 需求背景:目前在做接口的自动化测试平台,由于接口用例执行后返回的结果中的时 ...

  4. google浏览器清除缓存

    google浏览器设置不缓存的方法 摘要:我们在做web开发的时候特别是在调试js时,会经常使用的google浏览器,这个时候就要我们修改过的代码可能不能生效.这是因为我们的浏览器默认是有缓存的,但是 ...

  5. IT职业发展攻略(技术仅是工具而已)

    时光飞逝,我事业中第一个十年就快结束了.在这十年里,让我收获了很多,今天想与大家分享一下,我在 IT 职场方面的一些个人经验,不一定对每个人都实用,请大家仅作参考吧. 大家既然都是做技术的,那我们不妨 ...

  6. idea配置(卡顿、开发环境等配置),code style template

    Tomcat配置VM Options:    -XX:PermSize=512m -XX:MaxPermSize=1024m 1.IDEA卡顿,修改IDEA使用内存 修改idea配置文件 在IDEA的 ...

  7. Javascript中Closure及其相关概念

    我相信学过Javascript这门语言的程序员应该都对Closure这个概念有所了解,然而网上以及各种Javascript书籍里面对Closure这个概念的定义有各种说法.我本人觉得很多地方对Clos ...

  8. Web Api in Orchard

    Web Api in Orchard Web Api is available in Orchard. You can implement a web api to fit your needs in ...

  9. HADOOP与HDFS数据压缩格式

    1.cloudera 数据压缩的一般准则 一般准则 是否压缩数据以及使用何种压缩格式对性能具有重要的影响.在数据压缩上,需要考虑的最重要的两个方面是 MapReduce 作业和存储在 HBase 中的 ...

  10. Elasticsearch 全文搜索和keyword search字段的mapping定义

    在ES5.0之前我们对于需要keyword search的字段都是这样定义的: { "field name":{ "type": "string&qu ...