`
proclsj999
  • 浏览: 6256 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
Session 接口
Session 接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate 中,实例
化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,
因为在客户程序中,可能会不断地创建以及销毁Session 对象,如果Session 的开销太大,会给系
统带来不良影响。但值得注意的是Session 对象是非线程安全的,因此在你的设计中,最好是一个
线程只创建一个Session对象。
在Hibernate 的设计者的头脑中,他们将session看作介于数据连接与事务管理一种中间接口。
我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及
时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,
诸如存储持久对象至数据库,以及从数据库从获得它们。请注意,Hibernate 的session不同于JSP
应用中的HttpSession。当我们使用session这个术语时,我们指的是Hibernate 中的session,而
我们以后会将HttpSesion 对象称为用户session。
SessionFactory 接口
这里用到了一个设计模式――工厂模式,用户程序从工厂类SessionFactory中取得Session 的
实例。
令你感到奇怪的是SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个
应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是当你的项目要操
作多个数据库时,那你必须为每个数据库指定一个SessionFactory。
SessionFactory在Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL
语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。
Configuration 接口
Configuration 接口的作用是对Hibernate 进行配置,以及对它进行启动。在Hibernate 的启动
过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个
SessionFactory对象。
虽然Configuration 接口在整个Hibernate 项目中只扮演着一个很小的角色,但它是启动
hibernate 时你所遇到的每一个对象。
Transaction 接口
Transaction 接口是一个可选的API,你可以选择不使用这个接口,取而代之的是Hibernate 的
设计者自己写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象,这些实现包
括JDBC的事务、JTA 中的UserTransaction、甚至可以是CORBA 事务。之所以这样设计是能让开
发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。
Query 和Criteria接口
Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本
地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。
Criteria接口与Query接口非常类似,它允许你创建并执行面向对象的标准化查询。
值得注意的是Query接口也是轻量级的,它不能在Session之外使用。
Callback 接口
当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback 接口会通知
Hibernate去接收一个通知消息。一般而言,Callback接口在用户程序中并不是必须的,但你要在你
的项目中创建审计日志时,你可能会用到它。
策略接口
Hibernate与某些其它开源软件不同的还有一点――高度的可扩展性,这通过它的内置策略机制
来实现。当你感觉到Hibernate 的某些功能不足,或者有某些缺陷时,你可以开发一个自己的策略来替换它,而你所要做的仅仅只是继承它的某个策略接口,然后实现你的新策略就可以了,以下是
它的策略接口:
· 主键的生成 (IdentifierGenerator 接口)
· 本地SQL语言支持 (Dialect 抽象类)
· 缓冲机制 (Cache 和CacheProvider 接口)
· JDBC 连接管理 (ConnectionProvider接口)
· 事务管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口)
· ORM 策略 (ClassPersister 接口)
· 属性访问策略 (PropertyAccessor 接口)
· 代理对象的创建 (ProxyFactory接口)
Hibernate为以上所列的机制分别创建了一个缺省的实现,因此如果你只是要增强它的某个策略
的功能的话,只需简单地继承这个类就可以了,没有必要从头开始写代码。
分享到:
评论

相关推荐

    Hibernate教程03_Hibernate核心开发接口介绍

    在本教程中,我们将深入探讨Hibernate的核心开发接口,这些接口是Hibernate框架的基石,使得开发者能够轻松地与数据库进行交互。Hibernate是一个强大的Java对象关系映射(ORM)框架,它消除了传统SQL编程的繁琐,...

    hibernate 通用接口架构

    "hibernate 通用接口架构"是指利用Hibernate框架,通过设计DAO(Data Access Object)层的接口来实现业务逻辑与数据访问的解耦,从而提高代码的可复用性和可维护性。 首先,我们来理解DAO层的作用。DAO层作为业务...

    hibernate压缩包

    API文档则是关于Hibernate接口和类的详细说明,是开发过程中不可或缺的参考资料。 API(Application Programming Interface)部分,是开发者直接与Hibernate框架交互的接口。例如,`org.hibernate.Session`接口代表...

    Hibernate核心接口

    "Hibernate核心接口" Hibernate 是一种流行的 Java 持久化框架,它提供了多种核心接口来实现数据的持久化操作。这些核心接口是 Hibernate 的基础组件,任何 Hibernate 应用程序都需要使用它们。下面将详细介绍这五...

    Hibernate概述及实例分析

    - 数据库(如Oracle)用于存储数据,Hibernate映射文件定义对象与表的对应关系,JavaBean表示业务实体,DBOperator使用Hibernate接口与数据库交互,Struts2处理HTTP请求,协调各层工作。 总结来说,Hibernate通过...

    Hibernate实战(第2版 中文高清版)

     2.2.4 切换到Hibernate接口   2.3 反向工程遗留数据库   2.3.1 创建数据库配置   2.3.2 定制反向工程   2.3.3 生成Java源代码   2.4 与Java EE服务整合   2.4.1 与JTA整合   2.4.2 JNDI绑定的...

    Hibernate学习笔记

    6. Hibernate接口分类:主要包括用于数据库操作的Session、Transaction和Query接口,配置Hibernate的Configuration接口,事件监听接口如Interceptor,以及扩展Hibernate功能的UserType等接口。 7. 技术集成:...

    hibernate教程

    - 持久化层(Data Access Layer):包括领域模型业务对象、Hibernate映射文件、Hibernate接口以及DAO模式。 #### 1.2. 持久层实现模式 持久层有多种实现方式,例如: - 混杂模式:在业务类中直接混杂JDBC代码,简单...

    [VIP][强化]J2EE第一期 Hibernate专题 第一讲 Hibernate简介源码

    - CRUD操作的示例代码,展示如何通过Hibernate接口与数据库进行交互。 - 查询相关的代码,如HQL或Criteria查询。 通过这些源码,学习者可以深入了解Hibernate的工作原理,以及如何在实际项目中应用Hibernate进行...

    hibernate数据库访问接口设计

    在 Hibernate 中,数据库访问接口的设计是至关重要的,因为它提供了与数据库交互的桥梁,简化了传统的 JDBC 编程,提高了开发效率和代码的可维护性。 ### 1. Session 接口 Hibernate 的核心接口是 `Session`,它...

    hibernate中五个核心接口

    ### Hibernate中的五个核心接口 #### 一、概述 Hibernate 是一款强大的对象关系映射(ORM)框架,它简化了 Java 应用程序与数据库之间的交互过程。通过将 Java 对象映射到数据库表中,Hibernate 提供了一种更加...

    Hibernate曾删改查接口实现

    "Hibernate曾删改查接口实现"这个主题,主要涉及的是如何利用Hibernate的核心接口进行数据的增、删、改、查操作。下面将详细讲解这些知识点。 **1. Hibernate基本概念** Hibernate是一个开源的ORM框架,它的核心是...

    Hibernate的五个核心接口介绍.png

    Hibernate的五个核心接口 Configuration SessionFactory Session Transcation Query和Criteria

    Hibernate Hibernate5 讲义 PDF

    JPA、ORM和Hibernate之间的关系是:ORM是一种思想,JPA是这种思想的具体表现形式,即按照Java语法规范定义的一套标准接口,Hibernate则是这组接口的一个具体实现。 Hibernate框架的下载和配置也是Java开发人员必须...

    基于泛型的通用Dao接口和hibernate的实现

    基于泛型的通用Dao接口和Hibernate的实现 基于泛型的通用Dao接口是指使用泛型来实现数据访问对象(DAO)的接口,主要是在使用 Hibernate 或 JPA 时使用。泛型可以使得DAO接口更灵活、更通用。 泛型Dao接口的优点:...

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

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

    封装hibernate统一操作接口

    这就是"封装Hibernate统一操作接口"的目的。 一、 Hibernate概述 Hibernate是一个开源的ORM框架,它将Java对象与关系数据库中的记录进行映射,从而避免了传统的JDBC编程的繁琐。通过Hibernate,开发者可以使用面向...

    kingbaseV8 hibernate jdbc 驱动

    `hibernate-jpa-2.1-api-1.0.0.Final.jar`是Java Persistence API (JPA) 2.1的实现,JPA是Java EE平台的一部分,提供了一种规范化的ORM接口,与Hibernate等ORM框架进行交互。这个库通常与Hibernate一起使用,以实现...

    hibernate3.zip 包含hibernate3.jar

    这个`hibernate3.zip`压缩包包含了`hibernate3.jar`,它是Hibernate 3版本的核心库,包含了执行ORM(对象关系映射)所需的所有类和接口。 在Java开发中,Hibernate3主要提供了以下关键知识点: 1. **对象关系映射...

Global site tag (gtag.js) - Google Analytics