Hibernate可以使用XML或屬性檔案來配置SessionFactory,預設的配置文件名稱為hibernate.cfg.xml或hibernate.properties。
上一個主題中所示範的為使用XML文件的方式,一個XML文件的例子如下:
hibernate.cfg.xml
<?xml version='1.0' encoding='big5'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 顯示實際操作資料庫時的SQL -->
<property name="show_sql">true</property>
<!-- SQL方言,這邊設定的是MySQL -->
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<!-- JDBC驅動程式 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:mysql://localhost/HibernateTest</property>
<!-- 資料庫使用者 -->
<property name="connection.username">caterpillar</property>
<!-- 資料庫密碼 -->
<property name="connection.password">123456</property>
<!-- 物件與資料庫表格映射文件 -->
<mapping resource="onlyfun/caterpillar/User.hbm.xml"/>
<mapping resource="onlyfun/caterpillar/Item.hbm.xml"/>
</session-factory>
</hibernate-configuration>
使用XML文件進行配置時,可以在當中指定物件與資料庫表格的映射文件位置,XML配置文件的位置必須在CLASSPATH的設定中,例如單機執行時主程式的位置,或是Web程式的WEB-INF/classes中,我們使用下面的方式來讀入XML文件以配置Hibernate:
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Configuration表示Java物件與資料庫表格映射的集合,並用於之後建立SessionFactory,之後Configuration就不再有作用。預設的XML文件名稱是hibernate.cfg.xml,您也可以指定文件的名稱,例如:
SessionFactory sf = new Configuration()
.configure("db.cfg.xml")
.buildSessionFactory();
除了使用XML文件進行配置,我們也可以使用屬性檔案進行配置,檔案名稱是hibernate.properties,一個例子如下:
hibernate.properties
hibernate.show_sql = true
hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://localhost/HibernateTest
hibernate.connection.username = caterpillar
hibernate.connection.password = 123456
hibernate.properties的位置必須在CLASSPATH的設定中,例如單機執行時主程式的位置,或是Web程式的WEB-INF/classes中,而為了要取得物件至資料庫表格的映射文件,我們必須在程式中如下載入:
Configuration cfg = new Configuration()
.addClass(onlyfun.caterpillar.User.class)
.addClass(onlyfun.caterpillar.Item.class);
這麼一來,程式會自動載入onlyfun/caterpillar/User.hbm.xml與onlyfun/caterpillar/Item.hbm.xml,完成Hibernate配置之後,我們可以如下取得SessionFactory:
SessionFactory sessions = cfg.buildSessionFactory();
其它更多有關Hibernate配置的細節,您可以查看Hibernate參考手冊。