Hibernate 配置

2021-02-24 15:05 更新

配置

Hibernate 需要事先知道在哪里找到映射信息,這些映射信息定義了 Java 類怎樣關(guān)聯(lián)到數(shù)據(jù)庫表。Hibernate 也需要一套相關(guān)數(shù)據(jù)庫和其它相關(guān)參數(shù)的配置設(shè)置。所有這些信息通常是作為一個(gè)標(biāo)準(zhǔn)的 Java 屬性文件提供的,名叫 hibernate.properties。又或者是作為 XML 文件提供的,名叫 hibernate.cfg.xml。

我們將考慮 hibernate.cfg.xml 這個(gè) XML 格式文件,來決定在我的例子里指定需要的 Hibernate 應(yīng)用屬性。這個(gè) XML 文件中大多數(shù)的屬性是不需要修改的。這個(gè)文件保存在應(yīng)用程序的類路徑的根目錄里。

Hibernate 屬性

下面是一個(gè)重要的屬性列表,你可能需要表中的屬性來在單獨(dú)的情況下配置數(shù)據(jù)庫。

S.N. 屬性和描述
1 hibernate.dialect
這個(gè)屬性使 Hibernate 應(yīng)用為被選擇的數(shù)據(jù)庫生成適當(dāng)?shù)?SQL。
2 hibernate.connection.driver_class
JDBC 驅(qū)動(dòng)程序類。
3 hibernate.connection.url
數(shù)據(jù)庫實(shí)例的 JDBC URL。
4 hibernate.connection.username
數(shù)據(jù)庫用戶名。
5 hibernate.connection.password
數(shù)據(jù)庫密碼。
6 hibernate.connection.pool_size
限制在 Hibernate 應(yīng)用數(shù)據(jù)庫連接池中連接的數(shù)量。
7 hibernate.connection.autocommit
允許在 JDBC 連接中使用自動(dòng)提交模式。

如果您正在使用 JNDI 和數(shù)據(jù)庫應(yīng)用程序服務(wù)器然后您必須配置以下屬性:

S.N. 屬性和描述
1 hibernate.connection.datasource
在應(yīng)用程序服務(wù)器環(huán)境中您正在使用的應(yīng)用程序 JNDI 名。
2 hibernate.jndi.class
JNDI 的 InitialContext 類。
3 hibernate.jndi.<JNDIpropertyname>
在 JNDI的 InitialContext 類中通過任何你想要的 Java 命名和目錄接口屬性。
4 hibernate.jndi.url
為 JNDI 提供 URL。
5 hibernate.connection.username
數(shù)據(jù)庫用戶名。
6 hibernate.connection.password
數(shù)據(jù)庫密碼。

Hibernate 和 MySQL 數(shù)據(jù)庫

MySQL 數(shù)據(jù)庫是目前可用的開源數(shù)據(jù)庫系統(tǒng)中最受歡迎的數(shù)據(jù)庫之一。我們要?jiǎng)?chuàng)建 hibernate.cfg.xml 配置文件并將其放置在應(yīng)用程序的 CLASSPATH 的根目錄里。你要確保在你的 MySQL 數(shù)據(jù)庫中 testdb 數(shù)據(jù)庫是可用的,而且你要有一個(gè)用戶 test 可用來訪問數(shù)據(jù)庫。

XML 配置文件一定要遵守 Hibernate 3 Configuration DTD,在 http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd. 這個(gè)網(wǎng)址中是可以找到的。

<?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> 

上面的配置文件包含與 hibernate-mapping 文件相關(guān)的 <mapping> 標(biāo)簽,我們將在下章看看 hibernate mapping 文件到底是什么并且要知道為什么用它,怎樣用它。以下是各種重要數(shù)據(jù)庫同源語屬性類型的列表:

數(shù)據(jù)庫 方言屬性
DB2 org.hibernate.dialect.DB2Dialect
HSQLDB org.hibernate.dialect.HSQLDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Informix org.hibernate.dialect.InformixDialect
Ingres org.hibernate.dialect.IngresDialect
Interbase org.hibernate.dialect.InterbaseDialect
Microsoft SQL Server 2000 org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server 2005 org.hibernate.dialect.SQLServer2005Dialect
Microsoft SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect
MySQL org.hibernate.dialect.MySQLDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 11g org.hibernate.dialect.Oracle10gDialect
Oracle 10g org.hibernate.dialect.Oracle10gDialect
Oracle 9i org.hibernate.dialect.Oracle9iDialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
Progress org.hibernate.dialect.ProgressDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialec
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)