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.通过编程设定主键值类型
根据老师课堂笔记整理