开发手册 欢迎您!
软件开发者资料库

Hibernate - 架构

Hibernate具有分层架构,可帮助用户在不必了解底层API的情况下进行操作. Hibernate利用数据库和配置数据为应用程序提供持久性服务(和持久对象).以下是Hibernate应用程序架构的高级视图. 以下是Hibernate应用程序架构的详细视图及其重要的核心类. Hibernate使用各

Hibernate具有分层架构,可帮助用户在不必了解底层API的情况下进行操作. Hibernate利用数据库和配置数据为应用程序提供持久性服务(和持久对象).

以下是Hibernate应用程序架构的高级视图.

Hibernate High Level View

以下是Hibernate应用程序架构的详细视图及其重要的核心类.

Hibernate Architecture

Hibernate使用各种现有的Java API ,如JDBC,Java Transaction API(JTA)和Java命名和目录接口(JNDI). JDBC提供了对关系数据库通用功能的基本抽象级别,允许Hibernate支持几乎所有带有JDBC驱动程序的数据库. JNDI和JTA允许Hibernate与J2EE应用程序服务器集成.

以下部分简要介绍了Hibernate Application Architecture中涉及的每个类对象.

配置对象

Configuration对象是您在任何Hibernate应用程序中创建的第一个Hibernate对象.它通常在应用程序初始化期间只创建一次.它表示Hibernate所需的配置或属性文件.

Configuration对象提供两个键组件 :

  • 数据库连接 : 这是通过Hibernate支持的一个或多个配置文件来处理的.这些文件是 hibernate.properties hibernate.cfg.xml .

  • 类映射设置 : 该组件创建Java类和数据库表之间的连接.

SessionFactory对象

配置object用于创建SessionFactory对象,该对象又使用提供的配置文件为应用程序配置Hibernate,并允许实例化Session对象. SessionFactory是一个线程安全对象,由应用程序的所有线程使用.

SessionFactory是一个重量级对象;它通常在应用程序启动期间创建并保留供以后使用.每个数据库使用一个单独的配置文件需要一个SessionFactory对象.因此,如果您使用多个数据库,则必须创建多个SessionFactory对象.

会话对象

会话用于获取与数据库的物理连接. Session对象是轻量级的,旨在每次与数据库进行交互时进行实例化.持久对象通过Session对象保存和检索.

会话对象不应该保持打开很长时间,因为它们通常不是线程安全的,应该创建它们并将它们作为需要.

事务对象

事务表示数据库的工作单元,大多数RDBMS支持事务功能. Hibernate中的事务由底层事务管理器和事务(来自JDBC或JTA)处理.

这是一个可选对象,Hibernate应用程序可以选择不使用此接口,而是管理事务他们自己的应用程序代码.

查询对象

查询对象使用SQL或Hibernate查询语言(HQL)字符串从数据库中检索数据并创建对象. Query实例用于绑定查询参数,限制查询返回的结果数,最后执行查询.

Criteria Object

Criteria对象用于创建和执行面向对象的条件查询以检索对象.