`
zhangfeiii
  • 浏览: 44140 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hibernate的工作原理

阅读更多
关于Hibernate的工作原理
1.Hibernate 的初始化.
读取Hibernate 的配置信息-〉创建Session Factory
1)创建Configeration类的实例。
它的构造方法:将配置信息(Hibernate config.xml)读入到内存。
一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。
2)创建SessionFactory实例
把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。
SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。
缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。
     SessionFactory的缓存中:Hibernate 配置信息。OR映射元数据。
缓存-大:重量级对象 小:轻量级对象
3)调用SessionFactory创建Session的方法
1】用户自行提供JDBC连接。
   Connection con=dataSource.getConnection();
   Session s=sessionFactory.openSession(con);
2】让SessionFactory提供连接
   Session s=sessionFactory.openSession();
4)通过Session 接口提供的各种方法来操纵数据库访问。 
Hibernate 的缓存体系
一级缓存:
Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。
二级缓存:
SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。
SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。 

Hibernate 中Java对象的状态
1.临时状态 (transient)
特征:
   1】不处于Session 缓存中
   2】数据库中没有对象记录
Java如何进入临时状态
   1】通过new语句刚创建一个对象时
   2】当调用Session 的delete()方法,从Session 缓存中删除一个对象时。 

2.持久化状态(persisted)
特征:
   1】处于Session 缓存中
   2】持久化对象数据库中设有对象记录
   3】Session 在特定时刻会保持二者同步
Java如何进入持久化状态
   1】Session 的save()把临时-》持久化状态
   2】Session 的load(),get()方法返回的对象
   3】Session 的find()返回的list集合中存放的对象
   4】Session 的update(),saveOrupdate()使游离-》持久化
3.游离状态(detached)
特征:
   1】不再位于Session 缓存中
   2】游离对象由持久化状态转变而来,数据库中可能还有对应记录。
Java如何进入持久化状态-》游离状态
   1】Session 的close()方法
   2】Session 的evict()方法,从缓存中删除一个对象。提高性能。少用。
分享到:
评论

相关推荐

    Hibernate 工作原理图Hibernate 工作原理图

    ### Hibernate工作原理详解 #### 一、概述 Hibernate 是一款开放源代码的 ORM(Object Relational Mapping)框架,它能够将 Java 类与数据库表建立映射关系,从而简化了持久层的操作。通过 Hibernate,开发人员...

    Struts + Spring + Hibernate工作原理解析

    Struts、Spring和Hibernate是Java开发中非常著名的三个开源框架,它们共同构成了经典的"SSH...通过阅读《Struts + Spring + Hibernate工作原理解析》文档,你可以更系统地掌握这些知识,为你的项目开发带来极大的帮助。

    struts工作原理图、spring框架结构图、hibernate工作原理图

    3. Hibernate工作原理: Hibernate 是一个流行的Java ORM(Object-Relational Mapping)框架,它简化了数据库操作,使开发者能够以面向对象的方式处理数据。其工作流程如下: - 应用程序创建SessionFactory,这是...

    Hibernate工作原理及为什么要用

    Hibernate 工作原理及为什么要用 Hibernate 作为一个开放源代码的对象关系映射框架,对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。下面将详细介绍 Hibernate 的...

    struts、spring、hibernate工作原理.

    ### Struts、Spring、Hibernate工作原理详解 #### Struts 工作原理与应用场景 **Struts** 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于简化Web应用的开发过程。它利用了JSP和Servlet技术...

    Hibernate、Spring和Struts工作原理及使用理由

    【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....

    spring+struts+hibernate工作原理

    首先,让我们详细了解SSH框架的各层及其工作原理: 1. **表现层(Presentation Layer)**: - 使用Struts框架,它遵循MVC(Model-View-Controller)设计模式。Struts控制器接收用户请求,调度业务逻辑并返回响应到...

    Spring+Hibernate+Struts工作原理

    【Hibernate工作原理】 Hibernate是一个ORM(Object-Relational Mapping)框架,它将Java对象与关系数据库的数据进行映射,实现了对象与数据库之间的一套映射规则。其主要工作流程包括: 1. 加载并解析配置文件和...

    hibernate的原理详细解说

    ### Hibernate原理详细解说 #### Hibernate概述 Hibernate 是一个开源的对象关系映射(Object Relational Mapping,简称 ORM)框架,用于 Java 应用程序与关系型数据库之间的交互。它通过将对象模型与数据库模型...

    Hibernate实现原理模拟

    本教程将通过模拟Hibernate的实现原理,帮助开发者深入理解其工作方式,以便更好地运用到实际项目中。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它提供了一种在Java应用中持久化对象到关系数据库的...

    hibernate原理与配置快速入门

    **Hibernate原理与配置快速入门** Hibernate 是一个流行的Java对象关系映射(ORM)框架,它为开发者提供了一种在Java应用程序中操作数据库的便捷方式,消除了传统的JDBC编码的繁琐性。本教程将带你快速了解...

    hibernate的工作原理

    本文将详细讲解 Hibernate 的工作原理,通过简化的图示法帮助理解其核心流程。 在 Hibernate 的工作流程中,首先需要配置两个重要的文件:`hibernate.cfg.xml` 和 `.hbm.xml`。`hibernate.cfg.xml` 文件包含了 ...

    Hibernate、Spring和Struts工作原理及使用理由.txt

    ### Hibernate、Spring和Struts工作原理及使用理由 #### Hibernate工作原理及使用理由 **1. Hibernate概述** Hibernate是一个开放源代码的ORM(Object-Relational Mapping)框架,用于简化数据库操作,它允许将...

    Hibernate Hibernate5 讲义 PDF

    Hibernate工作原理的理解是掌握该框架的核心内容。Hibernate使用配置好的映射文件和主配置文件,在运行时自动将数据对象转换成数据库中的记录,并且可以将数据库记录转换回数据对象。Hibernate的懒加载、缓存策略...

    hibernate框架原理面试题

    hibernate框架

    Hibernate 体系结构与工作原理.txt

    ### Hibernate 体系结构与工作原理 #### 一、概述 Hibernate 是一款开源的对象关系映射(Object Relational Mapping,简称 ORM)框架,它为 Java 应用程序提供了一种将对象模型与数据库模型进行映射的方式,使得...

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    而`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`是Hibernate 3.0版本中的两个核心文件,它们定义了Hibernate配置文件和映射文件的语法规则,是理解Hibernate工作原理的关键所在。 首先,我们来...

    hibernate-src.zip

    `hibernate-src.zip`是一个包含Hibernate源码的压缩包,对于想要深入了解Hibernate工作原理、进行性能优化或者进行二次开发的开发者来说,它是一份极其宝贵的资源。 在`org`目录下,我们可以找到Hibernate的核心...

    hibernate项目源代码

    通过导入这个项目,学习者可以直观地看到Hibernate的配置、实体类、映射文件、Session工厂和DAO层等关键组件,从而加深对Hibernate工作原理的理解。 【标签】"hibernate"强调了这个项目的核心内容,即围绕Hibernate...

Global site tag (gtag.js) - Google Analytics