一级缓存 ---- Hibernate框架学习

叙:hibernate中有一个特色,即,hibernate的持久态能自动更新数据库,不需要手动设置更新操作代码,而持久态的这一特色所依据的便是hibernate的一级缓存技术。那么之前学过了hibernate的三态,现在学习一下一级缓存;


hibernate的一级缓存

首先,要明白什么是缓存;

什么是缓存?

缓存:一种优化方式,将数据存储在本地,当使用到保存的数据时不必再向服务器或者终端进行请求数据的操作,直接读取本地数据即可。

然后现在了解一下hibernate的缓存;

hibernate缓存

hibernate的一级缓存介绍:

  • Hibernate框架中提供了优化手段:缓存、抓取策略。
  • Hibernate中提供了两种缓存机制:一级缓存、二级缓存;
  • Hibernate的一级缓存:被称为session级别的缓存,其生命周期与session生命周期一致(一级缓存是由session中的一系列的Java集合构成),一级缓存是系统自带的不可卸载的(hibernate的二级缓存是SessionFactory级别的,如需使用需要提前配置)。

hibernate的一级缓存的结构

一级缓存中的特殊区域:快照区

快照区:就是当数据第一次保存时,会形成一个缓存区和一个快照区,此时两个区的数据相同,当在这个session未销毁时再次调用此数据进行操作后数据会保存到缓存区,当点击提交到数据库时,系统会比较缓存区的数据和对应的快照区的数据是否一致,若是缓存区与快照区的一致也就是说提交的数据和数据库中的数据一致,则不会进行更新操作,若是不同才会进行更新的操作。

hibernate的持久化类能自动更新数据库依托于hibernate的一级缓存,一级缓存的重点是快照区;;


《本章完》

原文地址:https://www.cnblogs.com/Email-qtl777777/p/9651807.html

时间: 2024-10-12 09:21:08

一级缓存 ---- Hibernate框架学习的相关文章

hibernate框架学习之一级缓存

l缓存是存储数据的临时空间,减少从数据库中查询数据的次数 lHibernate中提供有两种缓存机制 ?一级缓存(Hibernate自身携带) ?二级缓存(使用外部技术) lHibernate的一级缓存即Hibernate操作数据时所对应的临时数据存储区域,这个区域是绑定Session对象的,也就是说每开启一个Session对象,就会产生对应的一级缓存空间,当Session对象关闭时,该空间内的数据,也就是其中保存的PO对象,会转化为DO对象. lHibernate的一级缓存是Session级别的

hibernate框架学习笔记5:缓存

缓存不止存在与程序中,电脑硬件乃至于生活中都存在缓存 目的:提高效率 比如IO流读写字节,如果没有缓存,读一字节写一字节,效率低下 hibernate中的一级缓存:提高操作数据库的效率 示例: 抽取的工具类 package utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUt

j2ee开发之hibernate框架学习笔记

hibernate框架技术重点学习笔记 1.针对不同的数据库,有不同的数据库实现类,使其符号对应的数据库? mysqlDaoImpl oracleDaoImpl ... ... 2.对象和表记录的转换存在着转换问题->orm,对象和关系的一种映射 3.框架:解决一种问题的方案集合! 4..配置文件 Xxx.cfg.xml  主配置文件 xxx.hbm.xml映射文件: 映射基础 普通属性 主键 集合属性 关联关系:一对多  多对一 多对多  一对一 继承结构 5.其他特性:数据库连接池  懒加载

持久化类(状态介绍)---- Hibernate框架学习

叙:之前介绍了持久化.持久化类的相关信息,关于持久化类只讲了相关编写规则等(文章地址:https://www.cnblogs.com/Email-qtl777777/p/9650239.html),关于其内部的更多的划分并没进行细讲,本章电虫就持久化类的三个状态以及三种状态的区分以及三种状态的区分进行学习.记录: 持久化类的三种状态 Hibernate是持久层框架,通过持久化的类完成ORM(Java对象和数据库表的映射关系)操作:hibernate为更好地管理持久化类的状态,特此将持久化类分成三

二、框架学习 (一)Hibernate框架学习 (2)Hibernate概念和api使用

目录 1 实体类编写规则 2 hibernate主键生成策略 3 实体类操作 (1)crud操作 (2)实体类对象状态 4 hibernate的一级缓存 5 hibernate的事务操作 (1)事务代码规则写法 6 hibernate其他的api(查询) 正文 实体类编写规则 1 实体类里面属性是私有的 2 私有属性使用公开的set和get方法操作. 3 要求实体类有属性作为唯一值(一般使用id值) 4 实体类属性建议不使用基本数据类型,使用基本数据类型对应的包装类 (1)八个基本数据类型对应的

[ SSH框架 ] Hibernate框架学习之四(JPA)

一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口),它定义一系列的注释.这些注释大体可分为:类级别注释.方法级别注释.字段级别注释.给实体类添加适当的注释可以在程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式从数据库中读取出来. 目前有两种注释方案可以确定对象与表格之间的对应关系:一种是注释实体类的属性字段(字

Hibernate二级缓存 --Hibernate框架

Hibernate本身只提供了二级缓存的规范,但并未实现,所以需要第三方缓存插件的支持.常用的二级缓存第三方插件有:EHCache.Memcached.OSCache.SwarmCache.JBossCache.这些插件的功能的侧重均有所不同.下面一图说明了插件的在实际应用中的区别: 本例采用EHCache插件. 1.首先,导入需要EHCache插件相关的Jar包.(可通过Hibernate框架的lib\optional\ehcache目录中找到) 2.修改主配置文件hibernate.cfg.

hibernate 框架学习笔记---网上摘抄的一个非常好的例子

编写Spring+Hibernate框架下的应用,总是离不了编写一个通用的泛型GenericHibernateDao.查阅了网上不少的GenericHibernateDao实现,归纳整理为如下实现,供后续编码参考. 首先定义接口泛型DAO接口 GenericDao package com.th.huz; import java.io.Serializable;import java.util.Collection;import java.util.Iterator;import java.uti

Hibernate框架学习2

hibernate中的实体规则 实体类创建的注意事项: 1.持久化类提供无参数构造 2.成员变量私有,提供共有get/set方法访问.需提供属性 3.持久化类中的属性,应尽量使用包装类型 4.持久化类需要提供oid.与数据库中的主键列对应 5.不要用final修饰class  原因:hibernate使用cglib代理生成代理对象.代理对象是继承被代理对象.如果被final修饰.将无法生成代理. 主键类型 自然主键(少见)  表的业务列中,有某业务列符合,必须有,并且不重复的特征时,该列可以作为