1.映射的基本原理
ORM
類–表
屬性–字段
對象–記錄
2.映射的實現方式
(1). XML文件實現
(2). Java註釋實現
1.XML映射實現
(1).使用XML文件實現ORM映射
(2).文件命名:Model類名.hbm.xml
(3).位置:Model類相同的包下
(4).語法:
<hibernate-mapping package="cn.mirror6.erp.model">
<class name="ErpModel" table="erp_order">
<id name="no" column="no">
<generator class="native"/>
</id>
<property name="cname" column="cname"/>
<set>
</set>
<many-to-one>
<one-to-one>
</class>
</hibernate-mapping>
(5).hibernate-mapping 根元素
屬性:package=”包名”
映射文件中其他類可以省略包名。
<hibernate-mapping package="cn.mirror6.erp.model">
</hibernate-mapping>
(6). class元素
指定映射的類和對應的表
<class 屬性="值" 。。。。>
</class>
主要屬性:
①. name=”類名” 指定類名
②. table=”表名”
③. mutable=”true|false”
④. lazy=”true|false”
⑤.dynamic-update=”true|false”
⑥.dynamic-insert=”true|false”
(7).id子元素
功能:映射與表主鍵字段對應的屬性。
語法:
<id name="no" column="no">
<generator class="native"/>
</id>
主要屬性:
①. name=”主屬性名”
②. column=”PK字段名”
③. type=”類型”: 可以是Hibernate的類型名,也可以是Java類型名
(8).property元素
功能:映射非主鍵非外鍵的字段的映射
<property name="code" column="DEPTCODE"/>
主要屬性:
1). name=”Model類的屬性名”
2). column=”字段名”
3). type=”類型”
4). lazy=”true|false”
2.Java Annotation(註釋)實現
在Model類和屬性變量上加入@註釋類
支持的註釋類:JPA內置的,Hibernate內置的。
1.類級別的註釋
(1).聲明持久類:@Entity
(2).指定表明: @Table(name=”表名”)
2.主鍵屬性映射
(1) @Id
(2) @Column(name=”字段名”)
3.普通屬性(非主鍵,非外鍵)
(1) @Basic (可省略)
(2) @Column(name=”字段名”)
推薦:放置在屬性變量前面。
3.主鍵生成器的功能
爲主鍵字段生成數值的,
通常用於代理主鍵字段。
4.主鍵生成器類型
1.使用數據庫機制生成主鍵值的類型
(1) identity:使用DB的自增量字段
(2) sequence:使用DB的序列生成主鍵值
(3) guid:使用數據庫內置的UUID機制
(4) native:使用數據庫內置的機制
2.使用Hibernate內置算法生成主鍵值的類型
(1)increment: select max(id)+1 from table
(2)hilo:Hibernate使用HILO算法生成。
(3)seqhilo:結合數據庫序列,再加上HILO
(4)UUID:Hibernate調用UUID算法生成。
3.通過編程設定主鍵值類型
根據老師課堂筆記整理