三. Hibernate的映射配置

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.通过编程设定主键值类型

根据老师课堂笔记整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值