標籤:
<?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"> <!-- ORM中繼資料 表對象關係對應檔 package : 配置該設定檔中類所在的包. --> <hibernate-mapping package="com.itheima.a_hello" > <!-- class-- 配置實體與表的關係 name : 填寫實體的完整類名 table: 與實體對應表的名稱 dynamic-insert:動態插入 預設值是false true=>如果欄位值為null,不參與insert語句 dynamic-update:動態更新 預設值"false" true=> 沒改動過的屬性,將不會產生到update語句中 --> <class name="User" table="t_user" >
<!-- id-- 配置實體與表中 id對應 name: user對象中標識主鍵的屬性名稱 column: 主鍵在表中的列名 length: 列的資料長度 unsaved-value(不常用): 指定主鍵為什麼值時,當做null來處理. access(強烈推薦不要用):field 那麼在操作屬性時,會直接操作對應的欄位而不是get/set方法 --> <id name="id" column="id" length="255" >
<!-- generator -- 主鍵建置原則 1.increment 資料庫自己產生主鍵. 先從資料庫中查詢最大的ID值,將ID值加1作為新的主鍵 2.identity 依賴於資料的主鍵自增功能 3.sequence 序列,依賴於資料中的序列功能(Oracle). 4.hilo(純瞭解,永遠用不到) : Hibernate自己實現序列的演算法,自己產生主鍵. (hilo演算法 ) 5.native 自動根據資料庫判斷,三選一. identity|sequence|hilo 6.uuid 產生32位的不重複隨機字串當做主鍵 7.assigned 自己指定主索引值. 表的主鍵是自然主鍵時使用. --> <generator class="uuid"></generator> </id>
<!-- property -- 實體中屬性與表中列的對應 name : 實體中屬性名稱 column : 表中列的名稱 length : 資料長度 precision: 小數點後的精度 scale: 有效位元 insert(一般不用): 該屬性是否加入insert語句. update(一般不用): 該屬性是否加入update語句. not-null : 指定屬性的約束是否使用 非空 unique : 指定屬性的約束是否使用 唯一 --> <!-- type: 表達該屬性的類型 可以用三種方式指定屬性 java類型 資料庫類型指定 Hibernate類型指定 java.lang.String varchar string --> <property name="name" column="name" update="true" type="string" ></property> <property name="password" column="password"></property> <property name="sal" column="sal" precision="2" scale="3" ></property> </class> </hibernate-mapping>
Hibernate -- xxx.hbm.xml ORM中繼資料 表對象關係對應檔