`
weitao1026
  • 浏览: 1047937 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate原理

阅读更多
1.Hibernate是如何连接数据库 

    主要是通过hibernate.cfg.xml配置文件中的配置 
    
    在这个文件中定义了数据库进行连接所需要的信息,包括JDBC驱动、用户名、密码、数据库方言等,

configuration类借助dom4j的XML解析器解析设置环境,然后使用这些环境属性来生成 SessionFactory。这样这

个sessionFactory生成的session就能成功获得数据库的连接。 

    2.Hibernate是如何进行数据库写操作 
    
    对数据库的写操作包括保存、更新和删除,当保存一个POJO持久对象时,触发Hibernate的保存事件监听器

进行处理。Hibernate通过映射文件获得对象对应数据库表名以及属性所对应的表中的列名,然后通过反射机制

持久化对象(实体对象)的各个属性,最终组织成向数据库插入新对象的SQL insert语句。调用了

session.save()方法后,这个对象会标识成持久化状态存放在session中,对于Hibernate来说它就是一个持久化

了的对象,但这个时候Hibernate还不会真正的执行insert语句,当进行session的刷新同部或事务提交时,

Hibernate会把session缓存中的所有SQL语句一起执行,对于更新、删除操作也是采用类似的机制。 
    
    然后,提交事务并事务提交成功后,这些写操作就会被永久地保存进数据库中,所以,使用session对数据

库操作还依赖于Hibernate事务的处理。如果设置了二级缓存,那么这些操作会被同步到二级缓存中,Hibernate

对数据库最终操作也是依赖于底层JDBC对数据库进行。 
    
    3.Hibernate 如何从数据库中载入对象 
    
    当使用session.load()载入对象时,可以设置是否采用延迟加载,如果延迟加载,那么load返回的对象实际

是CGLIB或javassist返回的代理类,它的非主键属性都是空的,这对于对象集合属性很有效。 Hibernate以此来

节约内存,当真正需要读取对象时,Hibernate会先尝试从session缓存中读取,如果session缓存中数据不存在

或者是脏数据并且配置了二级缓存,Hibernate尝试从二级缓存中检索数据,否则Hibernate会根据对象类型,主

键等信息组织select语句到数据中读取,再把select结果组织成对象返回。 
  
    4.Hibernate如何进行数据库查询操作 

    Hibernate提供SQL HQL Criteria查询方式。HQL是其中运用最广泛的查询方式。用户使用

session.createQuery()方法以一条HQL语句为参数创建 Query查询对象后,Hibernate会使用Anltr库把HQL语句

解析成JDBC可以识别的SQL语句,如果设置了查询缓存,那么执行 Query.list()时,Hibernate会先对查询缓存

进行查询,如果查询缓存不存在,再使用select语句查询数据库。
分享到:
评论

相关推荐

    Hibernate原理

    ### Hibernate原理深度解析 #### Hibernate为何重要? Hibernate作为一款开源的对象关系映射(ORM)框架,在Java开发领域占据着举足轻重的地位。其重要性体现在以下几个方面: 1. **资源管理**:Hibernate通过...

    Struts + Spring + Hibernate工作原理解析

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

    struts、spring、hibernate工作原理.

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

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

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

    hibernate原理与配置快速入门

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

    spring+struts+hibernate工作原理

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

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

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

    Hibernate工作原理及为什么要用

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

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

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

    Hibernate原理流程

    Hibernate原理流程

    Spring+Hibernate+Struts工作原理

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

    Hibernate原理解析

    理解这些状态对于掌握Hibernate的工作原理至关重要。 9. **实体关系映射** Hibernate支持多种关系映射,如一对一、一对多、多对一和多对多,包括集合映射、联合主键映射等,使得复杂的数据关系得以轻松管理。 10....

    Hibernate原理与应用 ppt

    在"Hibernate 原理与应用 ppt"中,主要讲解了Hibernate的基本概念、安装配置、CURD操作、关联映射、继承映射、懒加载、HQL和Criteria查询、缓存管理、事务处理以及最佳实践和与JPA的集成。 **安装配置** 在开始使用...

    Hibernate 原理与配置快速入门(转)

    Hibernate原理与配置快速入门 博文链接:https://linde13652.iteye.com/blog/162777

    Hibernate原理与配置快速入门

    ### Hibernate原理与配置快速入门 #### Hibernate核心API与基本配置概览 Hibernate 是一款流行的 Java 持久层框架,其主要功能是提供对象关系映射(Object Relational Mapping,简称 ORM)的能力,使得开发人员...

    hibernate原理与应用

    《Hibernate原理与应用》 Hibernate 是一款流行的Java ORM(对象关系映射)框架,它解决了在面向对象编程中模型与关系数据库之间的“阻抗不匹配”问题。在Java应用程序中,我们通常使用对象来表示业务逻辑,而...

    8Hibernate原理与实现简介

    【Hibernate原理与实现简介】 Hibernate 是一款流行的Java平台上的对象关系映射(ORM)框架,它的主要作用是简化数据库操作,将复杂的SQL语句和Java对象之间的转换工作自动化,从而提高开发效率。Hibernate通过将...

    hibernate的原理详细解说

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

Global site tag (gtag.js) - Google Analytics