Hibernate - 配置

Hibernate 需要提前知道——在哪里可以找到定义 Java 类如何与数据库表相关的映射信息。 Hibernate 还需要一组与数据库和其他相关参数相关的配置设置。 所有此类信息通常以名为 hibernate.properties 的标准 Java 属性文件或名为 hibernate.cfg.xml 的 XML 文件的形式提供。

我将考虑 XML 格式的文件 hibernate.cfg.xml 在我的示例中指定所需的 Hibernate 属性。 大多数属性都采用默认值,除非确实需要,否则不需要在属性文件中指定它们。 该文件保存在应用程序类路径的根目录中。


Hibernate 属性

以下是重要属性的列表,您将需要在独立情况下为数据库进行配置 −

序号 属性 & 描述
1

hibernate.dialect

此属性使 Hibernate 为所选数据库生成适当的 SQL。

2

hibernate.connection.driver_class

JDBC 驱动类。

3

hibernate.connection.url

数据库实例的 JDBC URL。

4

hibernate.connection.username

数据库用户名。

5

hibernate.connection.password

数据库密码。

6

hibernate.connection.pool_size

限制在 Hibernate 数据库连接池中等待的连接数。

7

hibernate.connection.autocommit

允许将自动提交模式用于 JDBC 连接。

如果您将数据库与应用程序服务器和 JNDI 一起使用,则必须配置以下属性 −

序号 Properties & Description
1

hibernate.connection.datasource

在应用程序服务器上下文中定义的 JNDI 名称,用于应用程序。

2

hibernate.jndi.class

JNDI 的 InitialContext 类。

3

hibernate.jndi.<JNDIpropertyname>

将您喜欢的任何 JNDI 属性传递给 JNDI InitialContext

4

hibernate.jndi.url

提供 JNDI 的 URL。

5

hibernate.connection.username

数据库用户名。

6

hibernate.connection.password

数据库密码。


Hibernate 与 MySQL 数据库

MySQL 是当今最流行的开源数据库系统之一。让我们创建 hibernate.cfg.xml 配置文件并将其放在应用程序类路径的根目录中。您必须确保您的 MySQL 数据库中有可用的 testdb 数据库,并且您有一个用户 test 可以访问该数据库。

XML 配置文件必须符合 Hibernate 3 Configuration DTD,该文件可在 http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd 中获得。

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
   
      <property name = "hibernate.dialect">
         org.hibernate.dialect.MySQLDialect
      </property>
      
      <property name = "hibernate.connection.driver_class">
         com.mysql.jdbc.Driver
      </property>
      
      <!-- Assume test is the database name -->
      
      <property name = "hibernate.connection.url">
         jdbc:mysql://localhost/test
      </property>
      
      <property name = "hibernate.connection.username">
         root
      </property>
      
      <property name = "hibernate.connection.password">
         root123
      </property>
      
      <!-- List of XML mapping files -->
      <mapping resource = "Employee.hbm.xml"/>
      
   </session-factory>
</hibernate-configuration>

上面的配置文件包含 <mapping> 标签,这些标签与 hibernatemapping 文件相关,我们将在下一章看到 hibernate 映射文件到底是什么以及我们如何以及为什么使用它?

以下是各种重要数据库语言属性类型的列表 −

序号 数据库 & 语言属性
1

DB2

org.hibernate.dialect.DB2Dialect

2

HSQLDB

org.hibernate.dialect.HSQLDialect

3

HypersonicSQL

org.hibernate.dialect.HSQLDialect

4

Informix

org.hibernate.dialect.InformixDialect

5

Ingres

org.hibernate.dialect.IngresDialect

6

Interbase

org.hibernate.dialect.InterbaseDialect

7

Microsoft SQL Server 2000

org.hibernate.dialect.SQLServerDialect

8

Microsoft SQL Server 2005

org.hibernate.dialect.SQLServer2005Dialect

9

Microsoft SQL Server 2008

org.hibernate.dialect.SQLServer2008Dialect

10

MySQL

org.hibernate.dialect.MySQLDialect

11

Oracle (any version)

org.hibernate.dialect.OracleDialect

12

Oracle 11g

org.hibernate.dialect.Oracle10gDialect

13

Oracle 10g

org.hibernate.dialect.Oracle10gDialect

14

Oracle 9i

org.hibernate.dialect.Oracle9iDialect

15

PostgreSQL

org.hibernate.dialect.PostgreSQLDialect

16

Progress

org.hibernate.dialect.ProgressDialect

17

SAP DB

org.hibernate.dialect.SAPDBDialect

18

Sybase

org.hibernate.dialect.SybaseDialect

19

Sybase Anywhere

org.hibernate.dialect.SybaseAnywhereDialect