Hibernate——對映配置檔案(xxx.hbm.xml)
阿新 • • 發佈:2018-12-21
hibernate對映配置檔案用於配置與資料庫表之間的對映關係,通過這種對映,hibernate會在專案啟動時生成對應的資料表,但是資料庫裡的表依舊需要自己建立
類與表的對映:
hibernate-mapping標籤中class標籤一般有name、table兩個屬性,分別對應類名和資料表名
主鍵的對映:
id標籤中的name屬性對應實體類中唯一標識id,column屬性對應資料表中的主鍵id
generator設定主鍵生成策略:
- assigned:由程式設計師提供,無型別限制,無法確保唯一性。
- uuid:由hibernate提供,型別必須是字元型 ,能確保唯一性。
- increment:由hibernate提供,型別必須是數值型,有併發風險。先去資料庫表查詢表中id最大值:select max(id) from t_user,在該結果的基礎上+1。
- sequence:只能用於提供序列支援的資料庫,如:oracle。
- 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>