`
wlcome998
  • 浏览: 31571 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

关于Hibernate常用的接口和使用流程

    博客分类:
  • J2EE
阅读更多


Configuration
接口

Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。
SessionFactory
接口<o:p></o:p>

  这里用到了一个设计模式――工厂模式,用户程序从工厂类SessionFactory中取得Session的实例。SessionFactory并不是轻量级的,一个项目通常只需要一个 SessionFactory就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory
SessionFactory
Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。

 Session接口<o:p></o:p>

  Session接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。但值得注意的是 Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。

Hibernate使用Session来存取,它是持久化管理器接口,代表与数据库之间的一次操作。然而为了操作持久化数据,首先要获得SessionFactory对象,SessionFactory负责一个数据库,是Session的工厂,对于一个XML配置文件,SessionFactory对象Configuration对象负责创建。这里的net.sf.hibernate.cfg.Configuration的一个实例代表了应用程序中所有的Java类到关系数据库的映射的集合,这些映射是从一些XML映射文件中编译得到的。可以得到一个Configuration的实例,直接实例化即可,当所有的映射都被Configuration解析之后,应用程序为了得到Session实例,必须先得到它的工厂,这些工厂应该是应用程序的所有线程所共享的。当然Hibernate并不禁止程序实例化多个SessionFactory,这在使用不止一个数据库时候就很有用。

Transaction 接口<o:p></o:p>

  Transaction接口是一个可选的API,你可以选择不使用这个接口,取而代之的是Hibernate的设计者自己写的底层事务处理代码。 Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA中的UserTransaction、甚至可以是CORBA 事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。

QueryCriteria接口<o:p></o:p>

  Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。

  Criteria接口与Query接口非常类似,它允许你创建并执行面向对象的标准化查询。

  值得注意的是Query接口也是轻量级的,它不能在Session之外使用。

Callback 接口<o:p></o:p>

当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback接口会通知Hibernate去接收一个通知消息。一般而言,Callback接口在用户程序中并不是必须的,但你要在你的项目中创建审计日志时,你可能会用到它。


分享到:
评论

相关推荐

    Hibernate工作流程和环境搭建jar包.rar

    总的来说,使用Hibernate可以显著提高开发效率,但理解其工作流程和配置细节至关重要。这个“Hibernate工作流程和环境搭建的jar包”包含了实现这些功能所需的库,可以根据具体项目需求选择合适的jar包导入。

    Hibernate Tools使用指南

    通过配置Hibernate的`hibernate.reveng.xml`文件,指定数据库连接信息和需要转换的表,然后运行生成器,即可自动生成对应的实体类、映射文件(`.hbm.xml`)和DAO接口。 例如,`hibernate.reveng.xml`可能包含如下...

    详解hibernate与webservice结合使用

    通过结合使用Hibernate与WebService,不仅可以提高系统的可维护性和扩展性,还能简化开发流程,使得开发团队能够更高效地协作。本文详细介绍了一种具体的实现方案,从工程目录的搭建、资源文件的准备到Hibernate的...

    hibernate权威整理文档!

    Hibernate的执行流程主要包括配置、会话管理、事务处理和查询操作。配置文件(hibernate.cfg.xml)用于定义全局设置,Configuration接口负责读取配置并生成SessionFactory,SessionFactory是线程安全的,用于创建...

    JAVA 使用hibernate配置实例

    通过这个实例,你将掌握在Java项目中使用Hibernate的基本流程,无论是普通Java工程还是Maven工程,都能轻松实现对数据库的操作。在实际开发中,你可以根据项目需求进一步优化配置,比如加入事务管理、查询优化等,以...

    struts2 spring hibernate常用jar包

    Struts2负责前端请求的处理和视图的展示,Spring作为容器管理所有bean的生命周期,提供事务管理和数据访问接口,而Hibernate则负责具体的数据库操作。例如,Struts2通过Action类调用Spring管理的Service层,Service...

    Hibernate内容大纲答案

    2. Hibernate 使用的基本流程: - 首先,需要配置Hibernate。这通常涉及到创建一个`hibernate.cfg.xml`配置文件,其中包含了数据库连接信息,如驱动类、URL、用户名和密码。 - 然后,通过`Configuration`类加载...

    hibernate源码分析一[启动过程]

    总的来说,Hibernate的启动过程涉及多个核心类和接口的协作,从配置文件的读取解析到`SessionFactory`的创建,每一步都至关重要,深刻理解这一流程对于掌握Hibernate框架的应用和优化具有重要意义。

    hibernate第一个hibernate

    这将演示基本的Hibernate操作流程。 8. 事务管理: Hibernate支持JTA和JDBC两种事务管理方式。通常,对于小型项目,可以使用`Session.beginTransaction()`和`Transaction.commit()`进行本地事务管理。 9. 性能...

    hibernate的注册和登陆

    本实例将深入探讨如何使用Hibernate实现用户注册和登录功能,这涉及到的主要知识点包括:Hibernate的基本配置、实体类定义、数据持久化、Session接口、Transaction管理以及SQL查询的映射。 首先,要使用Hibernate,...

    CXF接口Spring+Hibernate的添加完整版

    这个压缩包文件"CXF接口Spring+Hibernate的添加完整版"提供了将这三个技术整合在一起的一个示例,特别关注了如何实现一个基于CXF的接口,并结合Spring和Hibernate来完成数据的添加操作。以下是对这些知识点的详细...

    struts2与Hibernate整合

    Struts2和Hibernate是两种非常重要的Java开源框架,它们在企业级Web开发中扮演着核心角色。Struts2是一款强大的MVC(Model-View-Controller)框架,它为构建基于J2EE的Web应用程序提供了结构化的支持。而Hibernate则...

    spring和hibernate源文件

    2. **Session 和 Transaction**:Hibernate 的 Session 接口是与数据库交互的主要接口,而 Transaction 管理数据库操作的原子性。 3. **Criteria 和 HQL 查询**:除了 SQL,Hibernate 还提供了 Criteria API 和 HQL...

    Hibernate执行持久层访问步骤

    本文将深入探讨Hibernate执行持久层访问的详细步骤,帮助开发者更好地理解和应用Hibernate。 一、配置环境 1. 添加Hibernate依赖:在项目中引入Hibernate的JAR包或者Maven/Gradle依赖。 2. 配置Hibernate:创建...

    关于HIBERNATE矿建

    3. Session:Session是Hibernate的主要工作接口,它负责管理对象的状态,并提供事务处理和查询服务。 4. Query:Hibernate提供了丰富的查询语言HQL(Hibernate Query Language)和Criteria API,用于检索和操作数据...

    Hibernate泛型DAO接口,大部分通用都已包括

    这里,`SupperBaseDAOImp`实现了泛型DAO接口,并使用了Hibernate的`SessionFactory`来进行数据库操作。`SessionFactory`是Hibernate的核心对象,负责创建`Session`实例,`Session`是与数据库交互的主要接口。 再来...

    struts+hibernate+spring流程

    【Struts+Hibernate+Spring流程】是Java企业级应用程序中常用的一种轻量级架构组合,旨在降低模块间的耦合度,提高代码的可维护性和可重用性。这个架构将应用划分为四层:UI层(用户界面层)、业务逻辑层、数据持久...

    基于Struts2+Hibernate的登录注册系统

    Struts2和Hibernate是Java开发领域中常用的两个框架,它们分别负责表现层和持久层的管理。本项目是一个基于Struts2和...通过学习和实践,开发者可以深入理解Java Web应用的开发流程,并掌握常用框架的使用技巧。

    java使用hibernate操作数据库jar

    Java使用Hibernate操作数据库是现代Java应用中常见的技术实践,...以上就是关于Java使用Hibernate操作数据库的基础知识,通过这些内容,开发者可以更好地理解如何在Java项目中利用Hibernate进行数据库的高效管理。

    Hibernate3所有包和配置文件

    1. **hibernate3.jar**: 这是Hibernate3的核心库文件,包含了所有的类和接口,如Session, Transaction, Query等。它是使用Hibernate3进行开发的基础,包含了持久化模型、查询语言、事件监听、缓存管理等功能的实现。...

Global site tag (gtag.js) - Google Analytics