Hibernate 4 数据库配置

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

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

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

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

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

    这意味着以下参数:

    • 正确的数据库驱动程序的driver_class
    • 网址指向正确的数据库
    • 密码和正确的密码(对于 H2,大多数情况下未设置)
    • 方言让 Hibernate 知道如何将内部关键字映射到数据库命令

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

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

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

    • MySQL5:用于 InnoDB 表的,用于其他的org.hibernate.dialect.MySQL5Dialect
    • Oracle:9i 及更高版本的jdbc.OracleDriver
    • PostgreSQL:

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

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

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

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

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

    代码下载

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