`

Hibernate 中的 ORM 映射 原理

 
阅读更多

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

 

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

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

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

 

 

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

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

      

       <property name="属性 名称" coloumn="字段" type="数据类型"></property> 

 

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

一对一 
<one-to-one name="属性 名称" class="关系类型" 
       foreign-key="关系字段" lazy="false" cascade="all"> 
</one-to-one>

 一对多 
<set name="集合 属性 名称"> 
       <key column="关系字段"></key> 
       <one-to-many class="关系类型"></one-to-many> 
</set> 

多对一 
<many-to-one name="属性 名称" class="关系类型" 
       cascade="save-pdate" lazy="false"> 
       <column name="关系字段"></column> 
</many-to-one> 

<key-many-to-one name="属性 名称" class="关系类型" > 
       <column name="关系字段" /> 
</key-many-to-one> 

多对多 
<set name="集合 属性 名称" inverse="true" 
       cascade="none" table="中间表"> 
       <key column="外键关系字段" /> // 中间表引用当前表中的字段 
     <many-to-many class="关系类型" column="关系字段"/> 
</set> 

 

 

分享到:
评论

相关推荐

    hibernate-orm-master.zip

    "hibernate-orm-master.zip"文件包含了Hibernate ORM的源码和其他相关资源,对于学习和研究Hibernate ORM的工作原理以及如何在实际项目中使用它,是非常宝贵的资料。 在Java应用程序中,数据存储通常依赖于关系型...

    Hibernate框架ORM的实现原理

    ### Hibernate框架ORM的实现原理详解 #### 一、ORM概念及意义 **ORM**,即**对象关系映射**(Object Relational Mapping),是一种程序技术,用于将关系型数据库中的数据映射到对象上,以便于程序员能够以面向对象的...

    ORM映射与WEB的应用

    ORM映射,全称为Object-Relational Mapping,是对象关系映射,是现代Web应用程序中一个重要的技术。它提供了一种方式,将数据库中的表结构映射为编程语言中的对象,使得开发者可以使用面向对象的方式来操作数据库,...

    Hibernate_ORM步骤详解

    Hibernate ORM 是一种强大的Java持久层框架,它实现了对象关系映射(ORM)的概念,使得开发者可以使用面向对象的方式来操作数据库...理解Hibernate的持久化机制和ORM原理,对于掌握Java Web开发中的数据管理至关重要。

    hibernate-orm-3.3源码

    Hibernate,作为一个强大的对象关系映射(ORM)框架,一直以来都是Java开发者的重要工具。其3.3版本是 Hibernate 的一个重要里程碑,为开发者提供了丰富的功能和优化的性能。本文将针对《hibernate-orm-3.3源码》...

    hibernate-orm-4.3.9源码

    Hibernate,作为Java领域中的一款知名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是数据库交互。本文将基于从Hibernate官网下载的hibernate-orm-4.3.9源码,深入解析其...

    hibernate-orm-3.2.zip

    Hibernate ORM 是一个强大的Java对象关系映射(ORM)框架,它极大地简化了数据库与Java应用程序之间的数据交互...虽然现在Hibernate已经发展到了更高级的版本,但理解3.2的基础知识仍然有助于理解ORM的本质和工作原理。

    hibernate_orm-master

    Hibernate ORM 是一个开源的Java对象关系映射框架,它为开发者提供了一种在Java应用程序中管理关系数据库的便捷方式。本资料包"hibernate_orm-master.zip"包含了"hibernate-orm-master"项目,旨在帮助开发者深入了解...

    Hibernate源码(hibernate-orm-main.zip)

    Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。

    hibernate array 数组映射

    Hibernate 是一个开源的Java ORM(Object-Relational Mapping)框架,它通过提供一种对象-关系映射机制,使得开发者可以使用面向对象的方式来操作数据库,从而避免了传统的JDBC繁琐的数据库操作。 ### 数组映射原理...

    hibernate-orm.zip

    在"hibernate-orm.zip"这个压缩包中,我们主要探讨的是Hibernate ORM的核心概念、功能以及其在实际项目中的应用。 1. Hibernate ORM简介: Hibernate ORM是JPA(Java Persistence API)的一种实现,它通过XML或...

    hibernate-orm-4.3.zip

    Hibernate ORM是Java世界中广泛使用的对象关系映射框架,它通过在Java对象和关系数据库之间建立映射,使得开发者可以使用面向对象的方式来操作数据库,从而降低了数据库操作的复杂性。在Hibernate 4.3版本中,它...

    一个自己写的ORM原理的映射实例

    在这个"一个自己写的ORM原理的映射实例"中,我们可能看到的是一位开发者独立实现的ORM框架,通过这个实例,我们可以深入理解ORM的工作机制和原理。 首先,ORM的核心思想是将数据库中的表结构映射为程序中的类,将表...

    hibernate-orm-5.0源代码

    通过深入学习和分析Hibernate ORM 5.0的源代码,开发者不仅能了解其实现原理,还能掌握如何优化性能,解决实际项目中的问题,提升开发效率。理解并熟练运用这些知识,将使你在Java ORM领域更上一层楼。

    ORM对象关系映射

    目前流行的 ORM 产品包括:Apache OJB、Cayenne、Jaxor、Hibernate、iBatis、jRelationalFramework、mirage 等。这些产品都提供了持久层框架的实现,满足了不同应用程序的需求。 在使用 ORM 时,我们可以避免编写...

    hibernate-orm实例

    本实例是基于Hibernate-ORM官方提供的,特别适合初学者学习和理解Hibernate的工作原理和基本用法。 ### 1. Hibernate ORM 概述 Hibernate ORM 提供了一个持久化层,允许开发者用面向对象的方式处理数据库,而无需...

    ORM映射实现 java源码

    本篇主要探讨的是ORM映射的实现,特别是通过Java源码来理解其底层工作原理。 首先,我们需要理解ORM的基本概念。ORM的核心思想是通过定义对象和数据库表之间的映射关系,使得对象的操作可以直接转换为对数据库的...

    hibernate-orm-4.2.20.Final.zip源码

    总结,通过深入研究hibernate-orm-4.2.20.Final源码,开发者不仅可以掌握Hibernate的基本用法,更能理解其内部工作原理,为项目开发和问题排查提供有力支持。深入学习源码有助于提升Java开发者在ORM领域的专业素养,...

Global site tag (gtag.js) - Google Analytics