`
jiagou
  • 浏览: 2594750 次
文章分类
社区版块
存档分类
最新评论

Hibernate介绍

 
阅读更多

由来

在出现hibernate框架之前,我们使用JDBC连接来读取数据库。每次都需要手动去书写sql语句来执行操作。为了提高程序的复用性,我们考虑过使用抽象工厂的模式将Dao层给分离出来。这样,确实是提高了程序复用性,但那是界面和业务逻辑层。Dao层的好多代码仍要进行改动。那有没有一种方式可以让我们的Dao层代码不进行改动呢?我们能不能不再每次都机械的进行增删改的sql语句的编写呢?Hibernate给我们解决了这个难题。有了它,只需要你创建一些列的持久化类,再加上一些配置文件,我们就可以轻松的完成对数据的读取了。

概念

百科上对其的解释为:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSPWeb应用中使用,最具革命意义的是,Hibernate可以在应用EJBJ2EE架构中取代CMP,完成数据持久化的重任。

通俗点说就是Hibernate几乎可以完成JDBC所能完成的任何操作(并不是所有)。

全局认识Hibernate

  • Hibernate的基本组件

HibernateORMobject relation mapping)的解决方案。他的基本组件主要包含实体,映射文件还有Hibernate配置文件。

  • Hibernate的核心接口

Session接口:负责执行被持久化对象的CRUDCreate Retrieve Update Delete)操作。需要注意的是Session对象是非线程安全的。

SessionFactory接口:负责初始化Hibernate。它充当数据存储原的代理,并负责创建Session对象。需要注意SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。

Configuration类:负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

Transaction接口:负责事务相关的操作。

QueryCriteria接口:负责执行各种数据库查询

  • 持久化对象的概念及生命周期

使用Hibernate实际上是使我们采用对象化的思维操作关系型数据库。在数据库的操作过程中,对象分为以下三种状态。

瞬时对象(Transient Objects):他们的状态时瞬时的,他们并没有任何跟数据库表相关联的行为,只要应用不再引用这些对象,他们的状态将会丢失,并由垃圾回收机制回收

持久化对象(Persist Objects:他们是具有数据库标识的实例。它有持久化管理器Session统一管理,持久实例是在事务中进行操作的。它们的状态在事务结束时同数据库进行同步。当事务提交时,通过执行sqlinsertupdatedelete语句把内存中的状态同步到数据库中

离线状态(Detached Objects):Session关闭后,持久化对象就变为离线对象。离线表示这个对象不能再与数据库保持同步,他们不再受Hibernate管理

对象的生命周期如下图所示

  • 特点

优点:提高生产力。

使开发更加对象化

可移植性

没有侵入性,支持透明持久化

缺点:使用数据库特性语句,将很难调优

对大批量数据更新存在问题

系统中存在大量的统计查询功能

整体内容

结论

Hibernate在sql语句的编写上,不仅给我们封装了好多常用的语句,大大的简化了我们的编程操作。而且,也提供了hql语句,保留了自己手动编写sql语句的功能,使框架应用起来更加的灵活。由于Hibernate采用的是一种面向对象的思想去与数据库交流,这其中非常关键的一个环节就是映射文件。框架中介绍了多种映射,以满足不同的需要。要提高效率,频繁的与数据库打交道肯定不行,这里提供了缓存的知识。通过一级缓存,二级缓存的设置,来提高我们程序的运行效率。Hibernate简化了代码的编写,但是,配置文件的建立确实繁重了很多。此处,Hibernate提供了对jpa解析的支持。我们可以通过在代码上加一些注释,来简化配置文件的编写。如果对象一加载进来,就被实例化了,有些时候可能会影响效率,这里提供了lazy机制,可以在你需要的时候,再进行加载。说道效率,抓取的功劳不可忽视。有了抓取,原来需要发送n条sql语句能够执行的操作,这里很可能简化到一条就执行了。对于数据来说,线程安全问题一直是人们头疼的问题。事务当然也不可获取。Hibernate对事务进行了很好的封装。

Hibernate确实是在好多问题上给我们提供了很好的解决方案。但是,凡事都不绝对,它也存在这不太好的弊端。怎样发挥出他最大的长处,避免他的短处,就让我们在以后的实践中去体会吧。

分享到:
评论

相关推荐

    hibernate介绍

    通过以上介绍,我们可以看到 Hibernate 不仅简化了 Java 应用程序与数据库交互的过程,还提供了一系列强大的工具和特性来支持高级数据库操作,如事务管理、缓存策略、批量处理等,大大提高了开发效率。在实际应用中...

    01_传智播客hibernate教程_hibernate介绍与动手入门体验

    【标题】"01_传智播客hibernate教程_hibernate介绍与动手入门体验" 涉及的是一门关于Hibernate的初学者教程,旨在帮助开发者了解并掌握这一流行的Java对象关系映射(ORM)框架。Hibernate是Java开发中的一个关键工具...

    三大框架之一Hibernate 介绍

    【三大框架之一Hibernate介绍】 Hibernate是一个广泛应用于Java开发领域的开源对象关系映射(ORM)框架。它通过将Java对象和数据库表之间的映射关系进行抽象,使得开发者可以用面向对象的方式处理数据库操作,从而...

    01 hibernate介绍与动手入门体验

    【标题】:“01 Hibernate介绍与动手入门体验” 在IT领域,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它极大地简化了Java开发者在处理数据库操作时的工作。本课程旨在为初学者提供一个深入理解Hibernate...

    hibernate介绍与动手入门体验

    ### Hibernate介绍与动手入门体验 #### 一、Hibernate概述 Hibernate是一种开源的对象关系映射(ORM)框架,用于简化Java应用程序中的数据持久化操作。它允许开发者以面向对象的方式处理数据库,而不需要直接编写...

    ORM及Hibernate介绍.pptx

    ORM及Hibernate介绍,包括ORM及Hibernate简介,Hibernate入门学习,Hibernate数据持久化,Hibernate缓存的使用,实体关联关系映射,实体继承关系映射,Hibernate查询语言

    Spring+SpringMVC+Hibernate框架集成详解

    本文档旨在详细介绍 Spring、SpringMVC 和 Hibernate 框架的集成,旨在帮助开发人员快速了解这三个框架的集成过程。 Spring 框架 Spring 框架是一个 Java 语言的开源框架,旨在简化 Java 应用程序的开发。Spring ...

    Hibernate完整使用教程

    Hibernate 介绍 Hibernate 是一个开源的持久层框架,它提供了一个抽象层来访问关系数据库。它允许开发者使用面向对象编程语言来访问关系数据库,从而简化了数据库交互的过程。Hibernate 的主要特点是将对象关系映射...

    Hibernate学习笔记整理

    Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作数据库。 JDBC 的缺点 * 代码结构比较繁琐 * 面向纯 SQL 语句的...

    Hibernate 简单 PPT 总结

    - "05-2018-7-9-Hibernate-配置数据库连接池.pptx"可能介绍了如何在Hibernate中配置和使用数据库连接池,以提高应用性能。 - "2018-7-24-Hibernate-配置表关系.pptx"和"06-2018-7-9-Hibernate-对象关系映射文件.pptx...

    Hibernate介绍ppt

    介绍很全的 Hibernate PPT,基本上知识点涉及很全

    hibernate知识简介.ppt

    【hibernate知识简介】 Hibernate 是一款流行的Java持久层框架,它主要负责处理对象与关系数据库之间的映射,实现对象关系映射(ORM),从而简化Java应用中的数据存取操作。ORM 解决了面向对象编程语言与关系型...

    hibernate code.rar

    在这个“hibernate code.rar”压缩包中,我们很可能会找到关于Hibernate的视频教程——"hibernate介绍与动手入门体验.avi",这个资源将引导我们深入了解Hibernate的核心概念和实际应用。 首先,让我们谈谈Hibernate...

    .hibernate 框架介绍

    Hibernate是一个开源的对象关系映射(ORM)框架,它为Java语言提供了一种方便的工具来操作关系型数据库。Hibernate通过将Java程序中的POJO(普通旧Java对象)映射到数据库表,使得开发者可以使用面向对象的方式来操作...

Global site tag (gtag.js) - Google Analytics