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.url
从jdbc:h2:mem:db1;…
更改为jdbc:h2:file:./example;…
。 如您所见,区别在于使用文件而不是内存告诉 H2 它必须查找文件,并且该文件位置需要路径。
如果您的example.db
文件在本地不存在,请不要担心:如果缺少该文件,H2 将创建新的数据库文件。
我更改了应用,以在运行应用时将每个元素再次添加到数据库中。 这意味着,如果您运行该应用三次,您将在数据库中看到 3 本书-尽管它们具有相同的参数(当然 ID 除外)。 这应该给您一个简短的主意,即如何在应用后面将持久性存储与 Hibernate 4 一起使用。
总结
更改数据库并不难。 您只需更改驱动程序和连接参数即可。
代码下载
您可以从 Github 此处下载特定章节的代码。