ORM映射

文章原地址:

http://yunshuisuiyuan.iteye.com/blog/1682005


什么是 ORM 映射:
 Object  Relationship Mapping :对象 关系 映射。
 在关系型数据库中,一张表中有很多字段,而这些字段分为两类: 
     关系字段: 引用关系 ,外键引用 字段,引用另外一张表的一条记录 。
     普通字段: 仅作为记录信息的字段存在
 
     在开发当中,我们希望能设计一个类其 属性 能将表中的 字段 完全对应,将一条记录存放在一个类的对象中。
     于是就有了 ORM 映射的需求,针对不同的 字段 我们如果设计这个类的 属性,给它们对应什么样的 数据类型
     这就是  ORM  映射当中的 重点 : 字段(关系字段)   属性(关系属性)   基本数据类型(新类型)

 

     只要我们在配置属性时去想,  是将 什么  字段  配置成 什么 类型的 属性  就能游刃有余了

 
      在类的设计中,我们可以将 表的 普通字段 设计为 类的 普通属性  ,使用 基本数据类型  
就可以存放这些字段的值了。
      但是,对于 关系字段 ,我们用什么来存放它呢?

      先来看 关系字段 代表了什么:
      比如,Person 与 IdCard 两张表,IdCard 中有一个字段 
pId 
引用了 Person 表的主键 pId。
      那么我们可以这样理解,在 IdCard 这张表中,这个小小的
 pId 其实就对应了 Person 表的一条记录。
      既然 这个 pId 对应的是 Person 表的一条记录,转换为类的设计,我们可以看做这个

 

 

 pId 其实就对应了一个 Person 类的对象。

 
      这样,这个关系就明确了,那就是  关系字段 其实对应了关系表中的 一条 或 多条记录。
      所以,对于 关系字段,我们在设计类的时候就用 一个对象 或 一个集合 来存放它。
 
 接下来就是 映射:
 1.对于 普通的字段,我们用 基本数据类型 的 属性 就可以存放这些字段的值了。
     所以就有了 属性映射标签:Hibernate为我们提供的属性映射标签为 <property>
 

      

Java代码   收藏代码
  1. <property name="属性 名称" coloumn="字段" type="数据类型"></property>   

 

    在Hibernate中,如果 字段 对应的属性 名称 相同则可以省略 colomn 属性。数据类型是基本数据类型亦可省略。
     
 2.对于 关系字段 与 关系对象(集合) 的映射,于是乎就有了 关系映射标签。
     Hibernate为我们提供了四个常用的关系映射标签 : 

Java代码   收藏代码
  1. 一对一   
  2. <one-to-one name="属性 名称" class="关系类型"   
  3.        foreign-key="关系字段" lazy="false" cascade="all">   
  4. </one-to-one>  
  5.   
  6.  一对多   
  7. <set name="集合 属性 名称">   
  8.        <key column="关系字段"></key>   
  9.        <one-to-many class="关系类型"></one-to-many>   
  10. </set>   
  11.   
  12. 多对一   
  13. <many-to-one name="属性 名称" class="关系类型"   
  14.        cascade="save-pdate" lazy="false">   
  15.        <column name="关系字段"></column>   
  16. </many-to-one>   
  17.   
  18. <key-many-to-one name="属性 名称" class="关系类型" >   
  19.        <column name="关系字段" />   
  20. </key-many-to-one>   
  21.   
  22. 多对多   
  23. <set name="集合 属性 名称" inverse="true"   
  24.        cascade="none" table="中间表">   
  25.        <key column="外键关系字段" /> // 中间表引用当前表中的字段   
  26.      <many-to-many class="关系类型" column="关系字段"/>   
  27. </set>   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值