Hibernate 4 数据库配置

原文: 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.urljdbc:h2:mem:db1;…更改为jdbc:h2:file:./example;…。 如您所见,区别在于使用文件而不是内存告诉 H2 它必须查找文件,并且该文件位置需要路径。

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

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

总结

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

代码下载

您可以从 Github 此处下载特定章节的代码。