- Hibernate 教程
- Hibernate - 首页
- ORM - 概述
- Hibernate - 概述
- Hibernate - 架构
- Hibernate - 环境
- Hibernate - 配置
- Hibernate - 会话
- Hibernate - 持久化类
- Hibernate - 映射文件
- Hibernate - 映射类型
- Hibernate - 示例
- Hibernate - O/R 映射
- Hibernate - 级联类型
- Hibernate - 注解
- Hibernate - 查询语言
- Hibernate - 条件查询
- Hibernate - 原生 SQL
- Hibernate - 缓存
- Hibernate - 实体生命周期
- Hibernate - 批量处理
- Hibernate - 拦截器
- Hibernate - ID 生成器
- Hibernate - 保存图片
- Hibernate - log4j 集成
- Hibernate - Spring 集成
- Hibernate - Struts 2 集成
- Hibernate - Web 应用
- 映射表示例
- Hibernate - 表继承策略(每个层次结构一张表)
- Hibernate - 表继承策略(每个具体类一张表)
- Hibernate - 表继承策略(每个子类一张表)
- Hibernate 有用资源
- Hibernate - 问答
- Hibernate - 快速指南
- Hibernate - 有用资源
- Hibernate - 讨论
Hibernate - 架构
Hibernate 具有分层架构,这有助于用户无需了解底层 API 即可进行操作。Hibernate 利用数据库和配置数据为应用程序提供持久化服务(以及持久化对象)。
以下是 Hibernate 应用程序架构的非常高级别的视图。
以下是 Hibernate 应用程序架构及其重要核心类的详细视图。
Hibernate 使用各种现有的 Java API,例如 JDBC、Java 事务 API (JTA) 和 Java 命名和目录接口 (JNDI)。JDBC 提供了对关系数据库常用功能的基本抽象级别,允许 Hibernate 支持几乎任何具有 JDBC 驱动程序的数据库。JNDI 和 JTA 允许 Hibernate 集成到 J2EE 应用程序服务器中。
以下部分简要介绍了 Hibernate 应用程序架构中涉及的每个类对象。
Configuration 对象
Configuration 对象是您在任何 Hibernate 应用程序中创建的第一个 Hibernate 对象。通常在应用程序初始化期间仅创建一次。它表示 Hibernate 所需的配置文件或属性文件。
Configuration 对象提供两个关键组件:
数据库连接 - 通过 Hibernate 支持的一个或多个配置文件处理。这些文件是 hibernate.properties 和 hibernate.cfg.xml。
类映射设置 - 此组件创建 Java 类和数据库表之间的连接。
SessionFactory 对象
SessionFactory 对象使用提供的配置文件为应用程序配置 Hibernate,并允许实例化 Session 对象。SessionFactory 是一个线程安全的对象,并被应用程序的所有线程使用。
SessionFactory 是一个重量级对象;它通常在应用程序启动时创建并保留以供以后使用。每个使用单独配置文件的数据库都需要一个 SessionFactory 对象。因此,如果您使用多个数据库,则必须创建多个 SessionFactory 对象。
Session 对象
Session 用于获取与数据库的物理连接。Session 对象是轻量级的,旨在每次需要与数据库交互时进行实例化。持久化对象是通过 Session 对象保存和检索的。
Session 对象不应长时间保持打开状态,因为它们通常不是线程安全的,并且应根据需要创建和销毁它们。
Transaction 对象
Transaction 表示与数据库的工作单元,大多数 RDBMS 支持事务功能。Hibernate 中的事务由底层事务管理器和事务(来自 JDBC 或 JTA)处理。
这是一个可选对象,Hibernate 应用程序可以选择不使用此接口,而是在其自己的应用程序代码中管理事务。
StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build(); Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build(); // Create the SessionFactory Instance SessionFactory factory = meta.getSessionFactoryBuilder().build(); // Create the session Session session = factory.openSession(); // Create the transaction Transaction t = session.beginTransaction();
Query 对象
Query 对象使用 SQL 或 Hibernate 查询语言 (HQL) 字符串从数据库检索数据并创建对象。Query 实例用于绑定查询参数、限制查询返回的结果数,最后执行查询。
Criteria 对象
Criteria 对象用于创建和执行面向对象的条件查询以检索对象。