根据网上的相关资料和自己的理解,整理了一下Hibernate的主要接口。
1.Configuration
它位于org.hibernate.cfg.Configuration,好像是,呵呵。Configuration对象负责Hibernate的配置与启动,可以通过它来创建SessionFactory。
获得Configuration实例对象的方法:
(1)Configuration cfg = new Configuration().configure(),如果没有.configure()默认获得的是hibernate.properties,
(2)Configuration cfg = factory.getConfiguration()通过SessionFactory来获得创建它的Configuration。
2.SessionFactory
获得SessionFactory的方法。 factory = cfg.buildSessionFactory()
它的特点是:
(1)SessionFactory是线程安全的,可以被多个应用程序所共享使用。
(2)SessionFactory是重量级的,不要轻易地创建和销毁它的实例,因为会消耗大量的内存资源。
SessionFactory一旦被生成,它的配置信息就不会改变,即使生成它的Configuration发生改变他也不会变化。
3.Session
它是由SessionFactory来创建的,session = factory.openSession()
它的特点是:
(1)Sesion不是线程安全的,所以在软件构架的时候应该尽量避免多一个程序共享一个Session
(2)Session是轻量级的,创建和销毁不需要耗掉很多的资源。
Session创建查询对象、开启事务的方法:
session.createQuery(),session.beginTransaction()
Session是一个持久化对象管理器,它的管理方法有:
isOpen(),flush(),close(),evict(),clear()
获得持久化对象的方法:
get(),load(),两者的区别是当数据库中不存在对应数据室 ,get方法会得到一个null对象,而load会抛出一个异常。
对持久化对象的处理方法:
Session.save(),update,delete()
Session缓存的三大作用:
(1)可以减少访问数据库的次数
(2)可以保证缓存中的数据与数据库中的数据同步
(3)当缓存中的持久化对象存在循环关系时,Session会保证不出现访问对象的死循环,以及由死循环引起的JVM堆栈溢出异
Hibernate应用中Java对象的状态
对于需要持久化的Java对象,在它的生命周期中,可处于以下三种状态:
1 临时状态(transient):刚刚被new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象被称为临时对象。
2 持久化状态(persistent):已被持久化,加入到Session的缓存中。处于持久化状态的Java对象称为持久化对象。
3 游离状态(detached):已被持久化,但不再处于Session的缓存中。处于游离状态的Java对象被称为游离对象。
四、Query和Criteria接口
Query和Criteria接口是Hibernate的查询接口,用于向数据库查询对象,以有控制执行查询的过程。
Query实例包装了一个HQL(Hibernate Query Language)查询语句,HQL和SQL查询语句有些相似,便HQL查询语句是面向对象的,它引用类名及类的属性名,而不是表名及表的字段名。
Criteria接口完全封装了基于字符串形式的查询语句,比Query接口更加面向对象。Criteria接口擅长于执行动态查询。
复杂查询用QBC检索方式。QBC检索方式主要由Criteria接口、Criterion接口和Expression、Restrictions类组成。
五、Transaction接口
Transaction接口是Hibernate的数据库事务接口,它对底层的事务接口做了封装,底层事务接口包括:
JDBC API
JTA (Java Transaction API)
CORBA (Common Object Requet Broker Architecture) API
Hibernate应用可通过一致的Transaction接口来声明事务边界,这有助于在不同的环境或容器中移植。
分享到:
相关推荐
DAO层作为业务逻辑和数据存储之间的中间层,它的主要职责是封装对数据库的操作,将数据库交互的细节隐藏起来,使得业务逻辑层无需关心具体的数据库操作,只需要调用DAO接口即可完成数据的增删改查。 在面向接口的...
在Hibernate中,我们通过在Java类上使用@Entity注解来标记一个类为实体类,表示该类的对象可以被持久化到数据库。实体类的属性通常对应数据库表的列,使用@Column注解来指定。 6. **持久化状态和生命周期**: ...
"Hibernate核心接口" Hibernate 是一种流行的 Java 持久化框架,它提供了多种核心接口来实现数据的持久化操作。这些核心接口是 Hibernate 的基础组件,任何 Hibernate 应用程序都需要使用它们。下面将详细介绍这五...
在Hibernate中,事务的开始、提交和回滚都是通过调用 `Session` 上的方法来完成的。这简化了事务管理,尤其是在分布式系统中。 ### 5. Configuration 和 SessionFactory `Configuration` 类用于配置Hibernate,包括...
"Hibernate曾删改查接口实现"这个主题,主要涉及的是如何利用Hibernate的核心接口进行数据的增、删、改、查操作。下面将详细讲解这些知识点。 **1. Hibernate基本概念** Hibernate是一个开源的ORM框架,它的核心是...
这就是"封装Hibernate统一操作接口"的目的。 一、 Hibernate概述 Hibernate是一个开源的ORM框架,它将Java对象与关系数据库中的记录进行映射,从而避免了传统的JDBC编程的繁琐。通过Hibernate,开发者可以使用面向...
`SessionFactory`是Hibernate的核心对象,负责创建`Session`实例,`Session`是与数据库交互的主要接口。 再来看`DaoUtil.java`,这通常是一个工具类,用来辅助生成`SessionFactory`,并提供其他DAO操作的静态方法。...
综上所述,Session、SessionFactory、Transaction、Query 和 Configuration 这五个核心接口是理解 Hibernate 框架的关键。通过对这些接口的学习和掌握,开发者可以更好地利用 Hibernate 来简化 Java 应用程序与...
【hibernate主要知识点】 Hibernate 是一款流行的 Java 平台上的 ORM(对象关系映射)框架,它使得开发者可以使用面向对象的方式处理数据库操作,而无需直接编写 SQL 语句。ORM 框架如 Hibernate、TopLink 和 OJB ...
Hibernate的五个核心接口 Configuration SessionFactory Session Transcation Query和Criteria
基于泛型的通用Dao接口是指使用泛型来实现数据访问对象(DAO)的接口,主要是在使用 Hibernate 或 JPA 时使用。泛型可以使得DAO接口更灵活、更通用。 泛型Dao接口的优点: 1. 耦合性低:泛型Dao接口可以与不同的...
五、Hibernate主要接口和类 1. hibernate.cfg.xml常用配置 配置文件包含数据库连接信息、缓存策略、查询优化等多个方面的设置,例如:数据库URL、用户名、密码、方言、缓存提供商等。 2. Configuration 这是初始...
本篇将深入探讨Hibernate的五个核心接口:Session、SessionFactory、Transaction、Query和Configuration。 1. **Session接口**: Session接口是Hibernate的核心接口之一,提供了对持久化对象的基本操作,包括创建...
JPA、ORM和Hibernate之间的关系是:ORM是一种思想,JPA是这种思想的具体表现形式,即按照Java语法规范定义的一套标准接口,Hibernate则是这组接口的一个具体实现。 Hibernate框架的下载和配置也是Java开发人员必须...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java...Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。
5. **集成过程**:在整合CXF、Spring和Hibernate的过程中,通常需要配置Spring的XML上下文文件来声明服务接口、实现类、DAO和SessionFactory。此外,还需要设置CXF的服务器配置,指定服务的地址和实现类。在本示例中...
Session是与数据库进行交互的主要接口,而Transaction则管理数据库事务。Query接口允许我们执行复杂的数据库查询。 在Hibernate AIP中,关键步骤包括: 1. **配置**:设置Hibernate的配置文件(hibernate.cfg.xml...
以下是 Hibernate 3.3 的主要新特性: 1. **注解支持增强**: Hibernate 3.3 对 Java 5 的注解支持进行了强化,允许开发者在实体类和属性上直接使用注解来定义数据库映射,减少了XML配置文件的使用。这使得代码...