`
dicmo
  • 浏览: 68522 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate框架使用技术简述

    博客分类:
  • j2ee
阅读更多





(1)持久化对象的操作。
Hibernate的主旨是实现持久化对象与数据库表的映射。
如何操作持久化对象就成了主要的技术问题。Hibernate 在处理持久化对象时,没有直接创建和调用持久化对象和它的方法,而是利用 CGLIB 和 Java  反射技术来操纵持久化对象,通过代理的模式,在持久化对象的属性方法被调用的同时穿插外部的代码,甚至利用CGLIB的编程接口来替换持久化类的对象和方法。这种方式使Hibernate 可以较为容易地处理大量不同类别的持久化对象。

(2)HQL 语言的转换。
Hibernate3.0 基于 antlr 工具设计了 HQL 语言。Hibernate通过解析器解析 HQL 语句,然后分析出其内容并转化为 SQL 语句。借助 antlr 工具,这种转换变得可靠并易于实现。可以在hibernate.cfg.xml中,设置查询语言的转换器工厂,例如下面的属性设置。

        <property name="hibernate.query.factory_class">
        org.hibernate.hql.ast.ASTQueryTranslatorFactory
        </property>

(3)事务服务。
Hibernate没有特别设计自己的事务服务部分,而是借助于JDBC的事务服务,或者通过配置来借用J2EE 服务器内的 JTA 标准事务服务。

(4)XML映射文件。
Hibernate的配置和映射文件的定制主要以XML来实现。DOM4J 工具为Hibernate 提供了处理 XML 文件的解析器,XML 文件在被导入Hibernate后,被配置到Hibernate 的各个属性或者与持久化类对应。通过配置工具,很多属性也可
以在运行状态下进行修改和加载。

(5)执行查询语句。
Hibernate 的Session 仍然依赖于JDBC 的查询接口,封装 JDBC的查询方法,在抽象的层次上同时支持SQL 和 HQL 两种查询语言。

(6)数据库方言。
不同数据库产品的数据类型和查询语句有一定的区别,所以创建和管理数据库资源的语句也往往不尽相同。Hibernate 设计了方言(Dialect)接口来处理这些差异,使针对各种数据库产品的操作得以统一,这也是Hibernate 十分流行的原因之一。

(7)JNDI 服务。
Hibernate自身没有实现JNDI服务,依靠外界提供JNDI服务,通常可以将Hibernate的SessionFactory 对象绑定到 JNDI,或者通过JNDI 获取数据源和其他对象。

(8)缓冲技术。
在 Hibernate中可以使用多种缓冲工具,只要它们实现了CacheProvider 接 口 , 就 可 以 用 于  Hibernate     中 , 其 中 包 括 实 现 OSCache的OSCacheProvider  、 实 现  EHCache   的  EhCacheProvider  、 实 现  SwarmCache    的SwarmCacheProvider 、实现 JBossCache    的 TreeCacheProvider ,以及简单地利用一个Hashtable 来实现的HashtableCacheProvider 。下面的属性设置对应于OSCache。
       
<property name="hibernate.cache.provider_class">
       org.hibernate.cache.OSCacheProvider
</property>
   
      Hibernate的缓冲机制分为两层。第一层缓冲在 Session中实现,属于事务级别的缓冲,随事务结束而消失。第二层缓冲是在持久化实例的范围内进行缓冲,默认情况Hibernate  使用 EHCache来实现。EHCache不支持集群应用,所以在集群环境下需要将缓冲设置改变为 SwarmCache 或JBossCache 。

(9)连接池。
Hibernate被设计为可以使用多种连接池的系统,只要ConnectionProvider 接口,不同类型的连接池或其他能够提供连接的组件就可以被嵌入到 Hibernate来提供数据库连接。Hibernate中主要包括基于C3P0连接池的C3P0ConnectionProvider和基于Proxool连接池的ProxoolConnectionProvider。与C3P0连接池相关的部分配置属性如下:

<property name="hibernate.connection.provider_class">
        org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="hibernate.c3p0.min_size">8</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">2500</property>
<property name="hibernate.c3p0.max_statements">50</property>

(10)事件模型。
Hibernate 设计了一个事件模型,利用这个模型将持久化实体的操
作事件和处理事件的监听器联系起来,为实现 Hibernate的功能提供了一个可扩展的模型。目前Hibernate内的事件包括auto-flush,merge,create,delete,dirty-check,evicflush,flush-entity,load,load-collection,lock,refresh,replicate 和 save-update 等。事件的监听器可以由用户自定义实现,并通过 listener元素声明,例如,下面的这个关于
POLoadListener 的声明。
<listener type="load" class="com.weportal.hibernate.POLoadListener"> </listener>



  • 大小: 23.2 KB
  • 大小: 36.3 KB
1
4
分享到:
评论

相关推荐

    Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2

    Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2

    struts spring hibernate ssh 三大框架集成详细步骤 手把手教你搭框架

    **Hibernate框架**: Hibernate是一个优秀的对象关系映射(ORM)框架,使得Java开发者可以方便地操作数据库。它通过配置文件将Java类与数据库表进行映射,简化了SQL的编写。在SSH中,Hibernate负责数据持久化,...

    EJB与Hibernate的整合简述

    **EJB(Enterprise JavaBeans)与Hibernate的整合是Java企业级开发中的一项重要技术结合,主要目的是为了在EJB容器中充分利用Hibernate的持久化能力,提高数据管理的灵活性和效率。** EJB,全称为Enterprise ...

    Seam框架文档简述

    Seam作为一个胶水框架,能够很好地整合各种技术栈,如AJAX、Facelet、JSF、EJB3、Hibernate、Hibernate Search、JBPM、Drools、Email、iText、JMS等,为开发者提供了一个完整的开发环境。 通过以上介绍,我们可以...

    SSH框架搭建步骤

    **Hibernate框架** 1. **数据库连接**:配置`hibernate.cfg.xml`文件,包括数据库URL、用户名、密码等信息。 2. **实体类和映射文件**:为每个数据库表创建对应的Java实体类,并编写相应的`.hbm.xml`映射文件,或...

    struts2 spring hibernate使用XML的整合方式

    本文档将详细介绍如何使用XML配置文件实现Struts2、Spring以及Hibernate(通常称为SSH)这三种技术的整合,以支持一个简单的商品管理系统。这个系统不仅包含了基本的商品管理功能,还实现了图片上传与淘宝风格的分页...

    Hibernate与EJB集成

    - 可以利用Hibernate框架来实现数据持久化操作。 - **数据访问层**: - 使用Hibernate等框架与数据库进行交互。 - 实现数据的增删改查等操作。 #### 六、Hibernate与EJB集成的关键点 当将Hibernate与EJB结合使用...

    Hibernate初之单表映射学习例子

    1. **Hibernate框架基础**:介绍Hibernate的基本概念,包括其作用、功能以及相对于直接使用JDBC的优势。 2. **环境搭建**:如何配置Hibernate所需的库,例如添加Hibernate的jar包到项目类路径,设置数据库连接参数...

    spring和struts和hibernate最简单的整合

    3. **Hibernate框架**:Hibernate是一个ORM(Object-Relational Mapping,对象关系映射)工具,将Java对象与数据库表进行映射,简化了数据访问。它提供了CRUD(创建、读取、更新、删除)操作的API,使得开发者可以...

    如何提高hibernate性能

    在开发大型企业级应用时,ORM框架如Hibernate在处理大量数据时可能会出现性能瓶颈。针对这种情况,优化Hibernate的配置和使用策略至关重要。以下是一些提高Hibernate性能的关键点: 1. **初始化集合**: 当业务层...

    [应用开发及迁移][客户端编程开发框架]Hibernate指南.pdf

    ### Hibernate 指南知识点详解 #### 一、概述 Hibernate 是一款开源的对象关系映射(Object Relational Mapping,简称 ORM)框架,该框架能够极大地...希望这些内容能帮助开发者更好地理解和使用 Hibernate 框架。

    Hibernate3.1.2使用说明(中文)\Struts in Action(中文)\Spring开发指南

    2. 安装与配置:详述如何下载、安装Hibernate框架,并设置相应的环境变量,以便在项目中使用。 3. 数据库连接:讲解如何配置Hibernate与不同数据库的连接,如MySQL、Oracle等。 4. 实体类与表映射:介绍Hibernate的...

    struts2.x hibernate spring 整合

    **Hibernate框架** Hibernate是一个强大的ORM工具,它允许开发者使用Java对象来操作数据库,避免了传统的JDBC代码编写。Hibernate通过XML配置文件或注解定义对象与数据库表的映射关系,提供了CRUD(创建、读取、更新...

    JPA简述及用Hibernate实现环境

    **Hibernate** 是一个非常流行的JPA实现框架,它提供了更丰富的功能和更灵活的配置。通过使用Hibernate,开发者可以避免编写大量的SQL代码,而是利用Hibernate的API和注解来操作数据库。Hibernate不仅实现了JPA规范...

    Beginning Hibernate, 3rd Edition

    本书《Beginning Hibernate, 3rd Edition》旨在为初学者提供一个系统学习 Hibernate 的平台,不仅涵盖了基础概念和技术细节,还提供了大量的实践案例,有助于读者深入理解并掌握 Hibernate 的核心原理及使用技巧。...

    hibernate annotation 中文文档

    《Hibernate Annotation 中文文档》是Java开发者们的重要参考资料,它详细介绍了如何在Hibernate框架中使用注解进行对象关系映射(ORM)。Hibernate是一款强大的开源Java持久化框架,它简化了数据库与Java对象之间的...

    Manning.Java.Persistence.with.Hibernate

    《Manning.Java.Persistence.with.Hibernate》是一本专精于Java持久化技术的书籍,主要聚焦在Hibernate框架的应用和深入理解。Hibernate是Java开发中最广泛使用的对象关系映射(ORM)框架之一,它允许开发者用面向...

    Struts_Spring_Hibernate整合教程

    Struts、Spring 和 Hibernate 是Java Web开发中的三大主流框架,它们各自解决了一部分软件开发中的问题,而将它们整合在一起可以构建出高效、模块化且易于维护的Web应用程序。本教程将详细介绍这三个框架的整合过程...

    简述J2EE的核心技术

    Hibernate是一个流行的ORM(对象关系映射)框架,它的作用在于简化数据库操作。在构建运行环境时,需要配置`hibernate.cfg.xml`或`hibernate.properties`文件,指定数据库连接信息,以及映射文件(hbm.xml)来定义...

    Struts+Spring+Hibernate开发实例 (SSH整合)

    Struts、Spring、Hibernate(SSH)是Java Web开发中三个非常重要的开源框架,它们分别用于MVC模式的实现、依赖注入和持久化管理。SSH整合是将这三个框架结合在一起,以构建更高效、可维护性更强的企业级应用。本文...

Global site tag (gtag.js) - Google Analytics