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)用程序的類路徑的根目錄里。
下面是一個(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ù)庫密碼。 |
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 |
更多建議: