企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 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)下载特定章节的代码。