`

Hibernate3.6.2 核心接口

阅读更多


使用Hibernate 框架之前,首先需要我们对Hibernate 的核心接口,其核心接口一共有5 个,分别是SessionSessionFactoryTransactionQueryConfiguration 。在5 个接口中在一般的项目开发中都会使用到,通过这些接口可以对持久化对象进行存取,事务的控制等。下面分别对这个5 个接口进行介绍:

 

一、Session 接口:

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

    Session 可以看作是介于数据连接与事务管理的一种中间接口,我们可以将Session 想象成一个持久化对象的缓冲区,Hibernate 能检测到这些持久化对象的改变,并及时刷新数据库。我们也可以称Session 是一个持久层管理器,因为它包含一些持久层相关的操作,如存储持久对象到数据库,以及从数据库获取等等。

 

二、SessionFactory 接口:

    通过这个接口我们可以看到Hibernate 用到的一个设计模式- 工厂设计模式,用户从工厂类SessionFactory 中取得Session 的实例。

    Configuration 的实例会根据当前的配置信息,构造SessionFactory 实例。

    这里需要注意的是SessionFactory 并不是轻量级的!其设计目的是让它能在整个应用共享,换句话说,一个项目通常只需要一个SessionFactory 就够了,但是当你的项目要操作多个数据库时,那你就必须为每个数据库指定一个SessionFactory

SessionFactory 是线程安全的。

    SessionFactory Hibernate 中实际起到一个缓冲区的作用,它缓冲了Hibernate 自动生成的SQL 语句和一些其他的映射数据,还缓冲了一些将来有可能重复利用的数据。

 

三、Configuration 接口:

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

    Configuration 管理Hibernate 的配置信息都是从配置文件hibernate.cfg.xml 或者Hibernate.properties 读取的,当然也可以自定义文件名称,只要在实例化Configuration 的时候指定具体的路径就可以了。

虽然Configuration 接口在整个Hibernate 项目中只扮演着一个很小的角色,但它是启动hibernate 时你所遇到的每一个对象。

 

四、Transaction 接口:

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

 

五、QueryCriterial 接口:

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:对象持久化技术孙卫琴第二版part2

    2.4.1 Hibernate的核心接口 39 2.4.2 事件处理接口 41 2.4.3 Hibernate映射类型接口 41 2.4.4 可供扩展的接口 42 2.5 小结 43 2.6 思考题 45 第3章 第一个Hibernate应用 47 本章通过简单的helloapp应用例子,...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     2.4.1 Hibernate的核心接口  2.4.2 事件处理接口  2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类...

    精通Hibernate:对象持久化技术第二版part3

    2.4.1 Hibernate的核心接口 39 2.4.2 事件处理接口 41 2.4.3 Hibernate映射类型接口 41 2.4.4 可供扩展的接口 42 2.5 小结 43 2.6 思考题 45 第3章 第一个Hibernate应用 47 本章通过简单的helloapp应用例子,...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     2.4.1 Hibernate的核心接口  2.4.2 事件处理接口  2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     2.4.1 Hibernate的核心接口  2.4.2 事件处理接口  2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     2.4.1 Hibernate的核心接口  2.4.2 事件处理接口  2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类...

    低清版 大型门户网站是这样炼成的.pdf

    6.1.5 spring 2.5圣经——面向接口编程 358 6.1.6 开始spring 2.5旅程—hello world 359 6.2 spring 2.5核心技术 364 6.2.1 bean工厂之beanfactory介绍 364 6.2.2 实用的bean工厂applicationcontext 365 6.2.3 ...

    spring.doc

    3.6.2 @Qualifier 27 3.6.3 @Resource 27 3.6.4 @PostConstruct 28 3.6.5 @PreDestroy 28 注解注入拓展: 28 3.7扫描注入 30 注解扫描拓展: 32 Mvc用注解写: 34 Spring容器IOC和di的整个启动过程: 38 3.8 spring...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    2.4.1 配置核心控制器(FacesServlet) 65 2.4.2 JSF配置文件结构 68 2.5 托管Bean和表达式语言 69 2.5.1 托管Bean的属性和表达式语言 69 2.5.2 托管Bean的方法 78 2.5.3 托管Bean的分类 80 2.5.4 初始化托管Bean的...

Global site tag (gtag.js) - Google Analytics