知道jpa persistence.xml文件
#java #hibernate #jpa

在上一篇文章中,我们设置了Java项目,并将其连接到使用JPA和Hibernate的数据库。让我们回顾一下persistence.xml文件,我们创建并更详细地理解它。

此文件的位置是Src-> Meta -Inf-> persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
    <persistence-unit name="myPersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <properties>
            <!-- Database connection properties -->
            <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>

            <!-- Hibernate properties -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.hbm2ddl.auto" value="create"/>
        </properties>
    </persistence-unit>
</persistence>

主节点/标签是 ,一切都在其中。

下一个节点是 我们可以在持久性节点内创建多个持久性单位节点。每个持久性单位节点都有其名称和事务类型。在我们的情况下,名称为“ mypersistenceunit”,事务类型设置为resource_local。

通常有三种类型的交易

  1. JTA(Java Transaction API) - 在Java EE环境中使用
  2. resource_localâ-在Java SE环境中使用
  3. 自动确定环境会自动

接下来是定义我们持久性单元的属性。首先,我们提供了数据库连接属性。让我们单独看一下它们。

url - 这是数据库连接字符串

<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>

驱动程序 - 应用程序中使用的相应数据库的数据库驱动程序

<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>

用户 - 数据库连接的用户名

<property name="javax.persistence.jdbc.user" value="sa"/>

密码 - 数据库连接的密码

<property name="javax.persistence.jdbc.password" value=""/>

所有属性均来自Javax.persistence,这意味着这些是JPA属性名称,而不是Hibernate属性。

接下来,我们定义了冬眠特性。这些属性定义了休眠实现的工作行为。让我们单独看一下它们。

方言:

此处的方言是指JPA实现使用时使用的SQL查询语法在连接到数据库时使用。即使所有数据库都使用SQL,语法也存在一些较小的差异。因此,我们必须指定正在使用的数据库的方言。

例如,如果我们使用的是PostgreSQL,我们将其设置为这样的方言

<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>

对于MySQL数据库

<property name="hibernate.dialect" value="org.hibernate.dialect.MYSQLDialect"/>

show_sqlâ:

如果我们运行应用程序并制作数据库操作时将此属性设置为true,我们实际上可以看到控制台上写的SQL查询。这主要用于开发目的

Image description

格式-SQLâ:
如果此属性设置为true,则将其格式化控制台中的SQL查询。同样,这对于开发目的可能很有用。

 <property name="hibernate.format_sql" value="true"/>

HBM2DDL 自动:

此属性定义了将JPA实体转换为DDL(数据定义语言)时冬眠的自动行为。在这里,它将设置为创建滴定,该滴定设置行为以删除数据库架构和表格,并基于JPA实体创建新的模式。它通常仅在开发中使用,因为我们不想从数据库中删除现有表。

<property name="hibernate.hbm2ddl.auto" value="create"/>

我们可以将自动设置为:

的一些不同的行为

i。 验证 - 验证了针对映射元数据的模式
ii。 更新 - 基于映射元数据更新模式
iii。 创建 - 根据映射元数据创建一个新的架构
iv。 - 禁用自动模式生成和更新

存在许多其他属性和标签,可用于定义我们持久性单元的行为,但是这些属性足以开始运行应用程序。


Click here for the previous post |单击此处获取下一篇文章


关注我:TwitterLinkedInGitHubLinktree