1. 程式人生 > >Hibernate——對映配置檔案(xxx.hbm.xml)

Hibernate——對映配置檔案(xxx.hbm.xml)

hibernate對映配置檔案用於配置與資料庫表之間的對映關係,通過這種對映,hibernate會在專案啟動時生成對應的資料表,但是資料庫裡的表依舊需要自己建立

類與表的對映:

    hibernate-mapping標籤中class標籤一般有name、table兩個屬性,分別對應類名和資料表名

主鍵的對映:

    id標籤中的name屬性對應實體類中唯一標識id,column屬性對應資料表中的主鍵id

    generator設定主鍵生成策略:

  1. assigned:由程式設計師提供,無型別限制,無法確保唯一性。 
  2. uuid:由hibernate提供,型別必須是字元型 ,能確保唯一性。 
  3. increment:由hibernate提供,型別必須是數值型,有併發風險。先去資料庫表查詢表中id最大值:select max(id) from t_user,在該結果的基礎上+1。 
  4. sequence:只能用於提供序列支援的資料庫,如:oracle。 
  5. native:本地生成策略,依賴資料庫特性。

欄位的對映:

    property標籤中,name對應實體類中的屬性,如果後面沒有type屬性,則預設對應欄位資料型別和name屬性相同;如果後面沒有跟column屬性,則預設對應欄位資料名稱和name屬性相同

<!-- 檔名 Product.hbm.xml 的第一個字母(P)一定要大寫,要和資料表對應的實體類類保持一致 -->
<!-- 配置檔案Product.hbm.xml, 用於對映Product類對應資料庫中的product_表 -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="HibernateDemo">
<!-- 表明類Product對應資料庫中的表product_ -->
<class name="Product" table="product_">
<!-- 屬性id對映表裡面的欄位id -->
<id name="id" column="id">
<!-- generator表示id的自增長方式採用資料庫的本地方式 -->
<generator class="native">
</generator>
</id>
<!-- 配置屬性對映欄位 -->
<property name="name" />
<property name="price" />
</class>
	
</hibernate-mapping>