Hibernate 简介:它是什么以及为什么需要它
Hibernate 是一个功能强大、高性能的 Java 对象关系映射(ORM——Object-Relational Mapping)库。它解决了一个被称为“对象关系阻抗不匹配”的根本性问题:在 Java 中,我们处理对象和类,而在关系数据库中,我们处理表和记录。Hibernate 自动将 Java 对象转换为 SQL 查询,反之亦然,使开发人员能够专注于业务逻辑,而不是编写大量重复的 JDBC 代码。
Hibernate 的关键特性:
- CRUD 自动化: 通过操作 Java 对象来执行数据库记录的创建、读取、更新和删除。
- HQL 查询语言(Hibernate Query Language): 一种面向对象的 SQL 替代方案,它使用类名及其字段,而不是表和列。
- 缓存管理: 内置的一级和二级缓存机制,用于提高性能。
- 懒加载(Lazy Loading): 仅在实际使用时才加载关联数据。
- 数据库模式生成: 能够根据 Java 类中的注解自动创建或更新数据库表。
- 事务支持: 与 Java Transaction API (JTA) 和本地 JDBC 事务完全集成。
Hibernate 是 Java 生态系统中处理关系数据库的事实标准。它被广泛应用于从小型 Web 应用到企业级系统的众多项目中。
安装 Hibernate
与 Python 或 JavaScript 不同,Java 没有像 pip 或 npm 这样的统一包管理器。Hibernate 通过构建系统(如 Maven 或 Gradle)连接到项目。以下是两种工具的示例。
通过 Maven 安装(推荐)
将以下依赖项添加到项目的 pom.xml 文件中。我们将使用 Hibernate 6.x(撰写本文时的最新版本)和 PostgreSQL 驱动程序(您可以将其替换为 MySQL、H2 或其他)。
<dependencies> <!-- Hibernate 核心 --> <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.3.1.Final</version> </dependency>
<!-- PostgreSQL 驱动程序 --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.1</version> </dependency>
<!-- 日志记录(可选,但对调试很有用) --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.9</version> </dependency></dependencies>通过 Gradle 安装
添加到 build.gradle 文件:
dependencies { implementation 'org.hibernate.orm:hibernate-core:6.3.1.Final' implementation 'org.postgresql:postgresql:42.7.1' implementation 'org.slf4j:slf4j-simple:2.0.9'}添加依赖项后,您的 IDE(IntelliJ IDEA、Eclipse)将自动下载所有必需的 JAR 文件。
快速入门:代码示例
让我们创建一个简单的应用程序,用于将 User 对象保存到数据库并从中读取。为简单起见,我们将使用 H2 数据库(嵌入式),这样就不需要配置外部服务器。
步骤 1:配置文件 hibernate.cfg.xml
在 src/main/resources/ 文件夹中创建