在上一篇文章中,我们设置了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>
主节点/标签是
下一个节点是
通常有三种类型的交易
- JTA(Java Transaction API) - 在Java EE环境中使用
- resource_localâ-在Java SE环境中使用
- 自动确定环境会自动
接下来是定义我们持久性单元的属性。首先,我们提供了数据库连接属性。让我们单独看一下它们。
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查询。这主要用于开发目的
格式-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 |单击此处获取下一篇文章