什么是 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的源码和其他相关资源,对于学习和研究Hibernate ORM的工作原理以及如何在实际项目中使用它,是非常宝贵的资料。 在Java应用程序中,数据存储通常依赖于关系型...
### Hibernate框架ORM的实现原理详解 #### 一、ORM概念及意义 **ORM**,即**对象关系映射**(Object Relational Mapping),是一种程序技术,用于将关系型数据库中的数据映射到对象上,以便于程序员能够以面向对象的...
ORM映射,全称为Object-Relational Mapping,是对象关系映射,是现代Web应用程序中一个重要的技术。它提供了一种方式,将数据库中的表结构映射为编程语言中的对象,使得开发者可以使用面向对象的方式来操作数据库,...
Hibernate ORM 是一种强大的Java持久层框架,它实现了对象关系映射(ORM)的概念,使得开发者可以使用面向对象的方式来操作数据库...理解Hibernate的持久化机制和ORM原理,对于掌握Java Web开发中的数据管理至关重要。
Hibernate,作为一个强大的对象关系映射(ORM)框架,一直以来都是Java开发者的重要工具。其3.3版本是 Hibernate 的一个重要里程碑,为开发者提供了丰富的功能和优化的性能。本文将针对《hibernate-orm-3.3源码》...
Hibernate,作为Java领域中的一款知名对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是数据库交互。本文将基于从Hibernate官网下载的hibernate-orm-4.3.9源码,深入解析其...
Hibernate ORM 是一个强大的Java对象关系映射(ORM)框架,它极大地简化了数据库与Java应用程序之间的数据交互...虽然现在Hibernate已经发展到了更高级的版本,但理解3.2的基础知识仍然有助于理解ORM的本质和工作原理。
Hibernate ORM 是一个开源的Java对象关系映射框架,它为开发者提供了一种在Java应用程序中管理关系数据库的便捷方式。本资料包"hibernate_orm-master.zip"包含了"hibernate-orm-master"项目,旨在帮助开发者深入了解...
Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
Hibernate 是一个开源的Java ORM(Object-Relational Mapping)框架,它通过提供一种对象-关系映射机制,使得开发者可以使用面向对象的方式来操作数据库,从而避免了传统的JDBC繁琐的数据库操作。 ### 数组映射原理...
在"hibernate-orm.zip"这个压缩包中,我们主要探讨的是Hibernate ORM的核心概念、功能以及其在实际项目中的应用。 1. Hibernate ORM简介: Hibernate ORM是JPA(Java Persistence API)的一种实现,它通过XML或...
Hibernate ORM是Java世界中广泛使用的对象关系映射框架,它通过在Java对象和关系数据库之间建立映射,使得开发者可以使用面向对象的方式来操作数据库,从而降低了数据库操作的复杂性。在Hibernate 4.3版本中,它...
在这个"一个自己写的ORM原理的映射实例"中,我们可能看到的是一位开发者独立实现的ORM框架,通过这个实例,我们可以深入理解ORM的工作机制和原理。 首先,ORM的核心思想是将数据库中的表结构映射为程序中的类,将表...
通过深入学习和分析Hibernate ORM 5.0的源代码,开发者不仅能了解其实现原理,还能掌握如何优化性能,解决实际项目中的问题,提升开发效率。理解并熟练运用这些知识,将使你在Java ORM领域更上一层楼。
目前流行的 ORM 产品包括:Apache OJB、Cayenne、Jaxor、Hibernate、iBatis、jRelationalFramework、mirage 等。这些产品都提供了持久层框架的实现,满足了不同应用程序的需求。 在使用 ORM 时,我们可以避免编写...
本实例是基于Hibernate-ORM官方提供的,特别适合初学者学习和理解Hibernate的工作原理和基本用法。 ### 1. Hibernate ORM 概述 Hibernate ORM 提供了一个持久化层,允许开发者用面向对象的方式处理数据库,而无需...
本篇主要探讨的是ORM映射的实现,特别是通过Java源码来理解其底层工作原理。 首先,我们需要理解ORM的基本概念。ORM的核心思想是通过定义对象和数据库表之间的映射关系,使得对象的操作可以直接转换为对数据库的...
总结,通过深入研究hibernate-orm-4.2.20.Final源码,开发者不仅可以掌握Hibernate的基本用法,更能理解其内部工作原理,为项目开发和问题排查提供有力支持。深入学习源码有助于提升Java开发者在ORM领域的专业素养,...