`

hibernate的工作原理及为什么要使用它

阅读更多
Hibernate工作原理及其作用

原理:

    1.读取并解析配置文件

    2.读取并解析映射信息,创建SessionFactory

    3.打开Sesssion

    4.创建事务Transation

    5.持久化操作

    6.提交事务

    7.关闭Session

    8.关闭SesstionFactory

为什么要用:

    1.    对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

    2.    Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作

    3.    hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

    4.    hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

2. Hibernate是如何延迟加载?

    1.  Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)

    2. Hibernate3 提供了属性的延迟加载功能

当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。

    3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)

类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、

4. 说下Hibernate的缓存机制

    1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存

    2. 二级缓存:

        a) 应用及缓存

        b) 分布式缓存

            条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非              关键数据

        c) 第三方缓存的实现

5. Hibernate的查询方式Sql、Criteria,object comptosition Hql:

    1、 属性查询

    2、 参数查询、命名参数查询

    3、 关联查询

    4、 分页查询

    5、 统计函数

6. 如何优化Hibernate?

    1.使用双向一对多关联,不使用单向一对多

    2.灵活使用单向一对多关联

    3.不用一对一,用多对一取代

    4.配置对象缓存,不使用集合缓存

    5.一对多集合使用Bag,多对多集合使用Set

    6. 继承类使用显式多态

    7. 表字段要少,表关联不要怕多,有二级缓存撑腰
分享到:
评论

相关推荐

    Hibernate工作原理及为什么要用

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

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

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

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

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

    Spring+Hibernate+Struts工作原理

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

    Struts + Spring + Hibernate工作原理解析

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

    Hibernate实现原理模拟

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

    spring+struts+hibernate工作原理

    Spring+Struts+Hibernate(SSH)是Java EE领域中一种经典的开源框架组合,用于构建企业级的Web...尽管如此,理解SSH的工作原理对于Java EE开发者来说仍然是重要的,因为它帮助理解分层架构的原理和现代框架的设计思路。

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

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

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

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

    hibernate的工作原理

    Hibernate 是一个流行的 Java 应用程序开发框架,用于对象关系映射(ORM),它简化了数据库操作,使得开发者可以使用面向对象的编程方式处理数据库事务。本文将详细讲解 Hibernate 的工作原理,通过简化的图示法帮助...

    Hibernate原理

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

    hibernate框架原理面试题

    hibernate框架

    hibernate+mysql基本原理示例

    【hibernate+mysql基本原理示例】 在Java Web开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用面向对象的方式来处理数据库交互。MySQL则是一款广泛使用的开源关系型...

    Hibernate完整使用教程

    为什么选择 Hibernate Hibernate 的出现是为了解决传统的 JDBC 编程中的问题。传统的 JDBC 编程需要编写大量的代码来处理数据库交互,而 Hibernate 则提供了一种简洁的方式来访问关系数据库。 Hibernate 的主要优点...

    Hibernate原理流程

    Hibernate原理流程

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

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

    Strut+Spring+Hibernate框架的工作原理

    使用Hibernate框架可以简化数据访问层的编码工作,因为它提供了一个基于JDBC的主流持久化解决方案。Hibernate使用Java反射机制来实现透明性,并且它的性能非常好,支持各种关系数据库。 Hibernate的延迟加载 ...

    struts、spring、hibernate工作原理.

    - **为什么使用Hibernate**: - **减少重复编码**:Hibernate封装了JDBC访问数据库的代码,简化了数据访问层的开发工作。 - **提高开发效率**:Hibernate支持多种关系数据库,并且能够很好地处理从一对一到多对多...

Global site tag (gtag.js) - Google Analytics