標籤:style blog http color io 使用 ar java for
Hibernate 需要知道怎樣去載入(load)和儲存(store)持久化類的對象。這正是 Hibernate 映
射檔案發揮作用的地方。對應檔告訴 Hibernate 它應該訪問資料庫(database)裡面的哪個表
(table)及應該使用表裡面的哪些欄位(column)。
一個對應檔的基本結構看起來像這樣:
如果需要看DTD的設定檔可以到hibernate3.jar檔案下的org.hibernate包下面有個hibernate-mapping-3.0.dtd和hibernate-configuration-3.0.dtd檔案就是這裡的約束
在 hibernate-mapping 標籤(tag)之間, 含有一個 class 元素。所有的持久化實體類(再次聲
明,或許接下來會有依賴類,就是那些次要的實體)都需要一個這樣的映射,來把類對象映射到
SQL 資料庫裡的表:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="org.hibernate.tutorial.domain">
<!--這裡Event是類名,上面的package的路徑就是這個類名的包,EVENTS則是對應的表名-->
<class name="Event" table="EVENTS">
<!--這裡id 標籤的name屬性是對應的類的一個屬性,column是對應的表的主鍵名-->
<id name="id" column="EVENT_ID">
<!--generator 元素指定標識符的建置原則(也就是標識符值是怎麼產生的) native(全域性唯一) increment(自增)-->
<generator class="native"> </generator>
</id>
<!--這裡的寫法很多,第一種是將表和類型寫在一起,其他的沒有寫的時候hibernate會自動使用預設的配置-->
<property name="date" type="timestamp" column="EVENT_DATE"/>
<property name="title"/>
<!--這種寫法之名了資料類型,將表的欄位單獨拿出來成一個標籤, 因為表還具有自己的一些屬性-->
<property name="name" type="java.lang.String">
<column name="name" not-null="true"/>
</property>
</class>
</hibernate-mapping>
為了儲存 Hibernate 的配置,我們可以使用一個簡單的 hibernate.properties 檔案,或者一個
稍微複雜的 hibernate.cfg.xml,甚至可以完全使用程式來配置 Hibernate。多數使用者更喜歡使用
XML 設定檔:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory> <!-- 調用資料庫的驅動 --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 配置DATE的地址 --><property name="connection.url">jdbc:mysql://127.0.0.1:3306/test</property><!-- 設定資料庫的使用者名稱 --><property name="connection.username">root</property><!-- 設定資料庫的密碼 --><property name="connection.password">123456</property><!-- 輸出SQL執行語句 --><property name="show_sql">true</property><!-- 確定方言 --><property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property><!-- 能夠產生DDL建表語句, --><property name="hbm2ddl.auto">update</property><!-- 讀取映射的檔案 --><mapping resource="com/sun/domain/Employee.hbm.xml"/><mapping resource="com/sun/domain/Content.hbm.xml"/></session-factory></hibernate-configuration>
Java-hibernate的對應檔