Hibernate的核心就是對象關系映射:
加載映射檔案的兩種方式: 第一種:<mapping resource="com/bie/lesson02/crud/po/employee.hbm.xml"/> 第二種://便于測試,會自動加載映射檔案:employee.hbm.xml private static SessionFactory sf; static{ //加載主配置檔案,并且建立session工廠 sf = new Configuration() .configure() .addClass(Employee.class) .buildSessionFactory(); }
1:第一掌握映射檔案的書寫:
<hibernate-mapping package="com.bie.po"> </hibernate-mapping>
2:第二掌握如何映射某一個對象,以及class裡面主鍵和普通字段的設定。
<class name="User" table="user"></class>
2.1:主鍵映射
2.1.1:單列主鍵映射
<generator class=""></generator> 主鍵映射:id 主鍵生成政策: identity:自增長(mysql,db2) native:自增長[會根據底層資料庫自增長的方式選擇identity或者sequence] 如果是mysql資料庫,采用自增長的方式是identity 如果是oracle資料庫,使用sequence序列的方式是先自增長 sequence:自增長(序列),oracle中自增長是以序列方法實作 increment:自增長,一般不用(會有并發通路的問題,一般在伺服器叢集環境使用會存在問題) assigned:指定主鍵生成政策為手動指定主鍵的值 uuid:指定uuid随機生成全球唯一的值 foreign:(外鍵的使用,one-to-one的時候使用)
2.1.2:多列作為主鍵映射
(1)如果找不到合适的列作為主鍵,除了用id列,我們一般使用聯合主鍵,即多列的值作為一個主鍵,進而保證記錄的唯一性。 (2)聯合主鍵的建立: create table person2( name VARCHAR(20), age INT, sex VARCHAR(5), PRIMARY key(name,age) )

(3)建立一個實體類存放兩個主鍵作為屬性,并且實作set和get,并且必須實作可序列化; 之後這個實體類和資料表中非兩個主鍵的字段構成一個新的實體類,并且實作set和get方法, <class name="非兩個主鍵字段建立的實體類的類名"> <!-- 複合主鍵映射 --> <composite-id name="兩個主鍵建立的實體類new的對象名稱"> <key-property name="第一個主鍵的名稱" type="主鍵字段的類型"></key-property> <key-property name="第二個主鍵的名稱" type="主鍵字段的類型"></key-property> </composite-id> </class>
2.2:普通字段映射:property
name:指定對象的屬性名稱;
column:指定對象屬性對應的表的字段名稱,如果不寫預設與對象屬性一緻 ;
length:用于指定字元類型長度,比如字元串類型varchar(20),預設長度255;
type:用于指定表的字段的類型,如果不指定,會比對屬性的類型,包含兩種類型;
java類型:必須寫全名,比如java.lang.String,java.util.Date
hibernate類型:比如string,date,都是小寫,不能寫String(不能首字母大寫)
注意:property的column屬性的值不能是sql語句的關鍵字,比如desc關鍵字做描述的時候,如果非要使用,
可以使用``(shift+~)反引号,不然就要改列名;
格力,掌握核心科技,讓消費者愛上中國造!!!
Hibernate,掌握映射核心知識,讓老闆給你升職加薪!!!~..~
最後講解一下如何檢視Hibernate的api哦,很實用的哦~..~