# Hibernate 4 数据库配置

> 原文： [https://javabeginnerstutorial.com/hibernate/hibernate-4-database-configuration/](https://javabeginnerstutorial.com/hibernate/hibernate-4-database-configuration/)

在之前的文章中，我向您展示了如何入门 Hibernate 4：创建实体，管理关系和继承以及如何查询存储的数据。

但是，每次使用内存数据库时，这意味着每次停止应用时，插入的数据都会消失。

现在是时候向您展示如何切换到实际保留数据的另一个数据库，以后您可以检索它，以及必须重新配置以使事情按预期工作的方式。

## 变更数据库

我将在本文中的示例中使用本地 H2 数据库，但是，我将向您展示要在 Hibernate 中使用流行的关系数据库时需要更改的内容。

配置上的唯一区别是要使用的 **Hibernate 驱动程序**。 方言是 Hibernate 从其内部关键字（例如，注解）到数据库特定命令的映射。

### 在哪里更改

更改将在`src/main/resources/`下的`hibernate.cfg.xml`文件中进行。 在这里，您必须在`<!– 数据库连接设置 –>`注解下的块中设置字段。

这意味着以下参数：

*   正确的数据库驱动程序的`driver_class`
*   网址指向正确的数据库
*   合适用户的用户名
*   密码和正确的密码（对于 H2，大多数情况下未设置）
*   方言让 Hibernate 知道如何将内部关键字映射到数据库命令

## Hibernate 方言

方言告诉 Hibernate 如何根据所连接的数据库版本来映射内部关键字，因为某些关键字在数据库的较新版本中是新的-否则它们会随时间而变化。

但是，Hibernate 是一个具有一些可选配置选项的工具。 大多数时候，Hibernate 从驱动程序的版本中知道要使用哪种方言。 因此，您可以省略方言配置-Hibernate 仍然可以使用。 如果遇到问题，请尝试传递正确的方言。

## 一些感兴趣的驱动程序

我将在这里列出一些常用数据库的驱动程序。 但是，这意味着在运行应用时，您也需要在类路径上使用驱动程序。

*   MySQL5：用于 InnoDB 表的`hibernate.dialect.MySQL5InnoDBDialect`，用于其他的`org.hibernate.dialect.MySQL5Dialect`。
*   Oracle：9i 及更高版本的`jdbc.OracleDriver`
*   MS SQL Server：`microsoft.sqlserver.jdbc.SQLServerDriver`
*   PostgreSQL：`postgresql.Driver`

这些是最常用的关系数据库。 要将这些驱动程序放在示例项目中的类路径上，只需将正确的 JAR 导入为项目的`pom.xml`中的依赖项即可。

## 更新示例

现在该切换到永久性存储了。 在该示例中，我将使用 H2，因为它已经作为依赖项存在，并且与其他数据库不同，它不需要安装和配置，因此您也无需执行任何操作。

为了获得持久的 H2 存储，我只需将`connection.url`从`jdbc:h2:mem:db1;…`更改为`jdbc:h2:file:./example;…`。 如您所见，区别在于使用**文件**而不是**内存**告诉 H2 它必须查找文件，并且该文件位置需要路径。

如果您的`example.db`文件在本地不存在，请不要担心：如果缺少该文件，H2 将创建新的数据库文件。

我更改了应用，以在运行应用时将每个元素再次添加到数据库中。 这意味着，如果您运行该应用三次，您将在数据库中看到 3 本书-尽管它们具有相同的参数（当然 ID 除外）。 这应该给您一个简短的主意，即如何在应用后面将持久性存储与 Hibernate 4 一起使用。

## 总结

更改数据库并不难。 您只需更改驱动程序和连接参数即可。

#### 代码下载

您可以从 Github [此处](https://github.com/JBTAdmin/Hibernate)下载特定章节的代码。

