对象关系映射

Hibernate映射解析——七种映射关系

风格不统一 提交于 2020-01-02 03:54:47
首先我们了解一个名词ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。 映射类 ( *.java ):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。 映射文件( *.hbm.xml ) :它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 数据库配置文件( *.properties/*.cfg.xml ) :它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。 接下来让我们就一起走进 Hibernate 的七种映射关系: 1、 单向一对一关联映射(one-to-one): 两个对象之间一对的关系

Hibernate映射解析——七种映射关系

不打扰是莪最后的温柔 提交于 2020-01-02 03:54:29
首先我们了解一个名词ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。 映射类 (*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。 映射文件(*.hbm.xml) :它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 数据库配置文件(*.properties/*.cfg.xml) :它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。 接下来让我们就一起走进Hibernate的七种映射关系: 1、 单向一对一关联映射(one-to-one): 两个对象之间一对的关系,例如:Person

Hibernate映射解析——七种映射关系

早过忘川 提交于 2020-01-02 03:54:13
首先我们了解一个名词ORM,全称是( Object Relational Mapping ),即对象关系映射。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/*.cfg.xml),它们各自的作用如下。 映射类 (*.java):它是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象了。 映射文件(*.hbm.xml) :它是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。 数据库配置文件(*.properties/*.cfg.xml) :它是指定与数据库连接时需要的连接信息,比如连接哪种数据库、登录数据库的用户名、登录密码以及连接字符串等。当然还可以把映射类的地址映射信息放在这里。 接下来让我们就一起走进Hibernate的七种映射关系: 1、 单向一对一关联映射(one-to-one): 两个对象之间一对的关系,例如:Person

hibernate中一对多关系的映射

不羁岁月 提交于 2020-01-02 03:53:58
  昨天初次接触hibernate,仅仅弄懂了一对一关系的映射。今天学习了一天又有了新的收获,弄懂了一对多之间关系的映射。 一、一对多的关系映射   建立一对多关系关系的表的原则是将一的一方的主键加入到多的一方的表作为外键。这里以员工和部门为例子来演示。以前不用hibernate时建立pojo类要在员工类Emp中加入一个属性,即部门编号deptid.使用hibernate则不同了,需要在“一”的一方类中加入一个set集合,里面存放“多”的一方的对象。而在“多”的一方的类中需要加入一个“一”方的对象。也就是说在Dept类中需要加入一个set集合,存放Emp对象,因为一个部门里面对应多个员工,所以用一个集合来表示。而每一个员工只能属于一个部门,所以员工类Emp里面需要加入一个Depe类对象,表示所属部门。部门类和员工类的代码如下  1 public class Dept implements Serializable { 2 private int deptId; 3 private String deptName; 4 private Set<Emp> emps = new HashSet<Emp>(); 5 public int getDeptId() { 6 return deptId; 7 } 8 public void setDeptId(int deptId) { 9

hibernate关系映射

一个人想着一个人 提交于 2020-01-02 03:53:26
对象之间的关系 1 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题是当对象之间处于 下列关系之一时,数据库表该如何映射,编程上该如何对待(红色为重点) 2 简化问题:   a) 怎么写 Annotation   b)增删改査CRUD怎么写 3 —对一   a)单向(主键、外键)   b)双向(主键、外键)   c)中间表 4—对多   a)一张主表,多张子表 5 组件映射   a)@Embeddable   b)@ Embedded 一对一关联 1 一对一单向外键关联   a)项目名称:hibernate_0600_one2one_uni_fk   b)Annotation: 在被约束表字段的get方法上加@0ne20ne @JoinColumn   @OneToOne @JoinColumn(name="wifeid") //指定生成的数据库字段名 public Wife getWife() { return wife; }   c)xml: 在被约束表的xml配置文件中加<many-to-one unique   <class name="com.bjsxt.pojo.StuIdCard">    <id name="id">   <generator class="native"></generator>   </id>   <property

Hibernate 映射关系

♀尐吖头ヾ 提交于 2020-01-02 03:52:56
映射组成关系 •建立域模型和关系数据模型有着不同的出发点:    –域模型: 由程序代码组成, 通过细化持久化类的的粒度可提高代码的可重用性, 简化编程   –在没有数据冗余的情况下, 应该尽可能减少表的数目, 简化表之间的参照关系, 以便提高数据的访问速度 •Hibernate 把持久化类的属性分为两种:   –值(value)类型: 没有 OID, 不能被单独持久化, 生命周期依赖于所属的持久化类的对象的生命周期   –实体(entity)类型: 有 OID, 可以被单独持久化, 有独立的生命周期 •显然无法直接用 property 映射 pay 属性 •Hibernate 使用 <component> 元素来映射组成关系, 该元素表名 pay 属性是 Worker 类一个组成部分, 在 Hibernate 中称之为 组件 <!-- 映射组成关系 --> <component name="pay" class="Pay"> <parent name="worker"/> <!-- 指定组成关系的组件的属性 --> <property name="monthlyPay" column="MONTHLY_PAY"></property> <property name="yearPay" column="YEAR_PAY"></property> <property name=

浅析Hibernate映射(二)——关系映射(1)

廉价感情. 提交于 2020-01-02 03:50:57
上篇中谈了Hibernate的基本映射,这篇开始谈Hibernate的关系映射。 关系映射主要包括以下几种映射: 我们先从多对一关联映射开始。 多对一关联映射原理:在多的一端加入一个外键,指向一的一端,如下图: 根据对象模型书写映射文件: 在多的一端采用如下标签映射: <many-to-one name="group" column="groupid"/> User.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.jialin.hibernate.User" table="t_user"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <many-to-one name="group" column="groupid" /> </class> </hibernate-mapping> Group.hbm.xml <

一对一关系映射

痞子三分冷 提交于 2020-01-02 03:50:24
hibernate提供了两种一对一关联关系的方式,按照外键映射和按照主键映射. 一对唯一外键关联映射是多对一关联映射的特例 可以采用标签,指定多的一端的 unique=true ,这样就限制了多的一端的多重性为一。 通过这种手段映射一对一唯一外键关联 采用主键不要加字段,采用外键是需要加字段的。一对一唯一外键关联其实就是多对一的一个特例,只是限制了 unique=true 的含义就是 在多的一端添加一个外键指向一的一端 , 不过这里要限制唯一性。这种情况下其实还是多对一映射。 二.hibernate一对一唯一外键关联映射(双向关联Person<-->IdCard) 一对一唯一外键关联双向,需要在另一端(idcard),添加标签,指示hibernate如何加载 其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关 系,所以不能指定主键加载person,而要根据person的外键加载,所以采用如下 映射方式 : 默认是与 主键 比较, Property-ref=”idCard” 会指定与哪一个字段比较. 加入标签和数据库没有关系,是告诉 Hibernate 怎么来做这件事,所以数据库不用重新导出,不像因为 . 要在表里加字段 注: 标签 含义:指示如何加载关联对象,或者引用对象,默认根据主键加载, 标签 含义:加入外键在多的一端

【Hibernate框架】关联映射(一对一关联映射)

╄→гoц情女王★ 提交于 2020-01-02 03:50:04
一、整理思路: 之前,小编总结过Mybatis的关联映射,接下来,再来总结一下 hibernate 的相关的关联映射,直接上图: 这张图,就是小编整理总结整个Hibernate的关联映射的一个大致思路。 二、名词解释“ 1、单向关联:很简单,就是一个对象依赖于另一个对象。 2、双向关联:两个对象互相依赖。 三、一对一(one-to-one)关联映射: 所谓的一对一,大白话理解就是一个物件拥有的某种附属物件能而且只能拥有一件。举个例子就是作为学生,一个学生只能拥有一个有效的学生证,一个堂堂正正的中国公民也只能拥有一张有效的身份证。这就是一对一。接下来,我们就利用在职学生为例,说一下一对一映射。 在Hibernate中有两种方式能实现一对一映射,分别是: 1、主键关联; 2、唯一外键关联。 四、逐一介绍: 4.1、一对一单向关联映射 4.1.1、一对一单向关联映射——主键关联 核心:一个对象依赖于另一个对象。举例:根据学生,找到对应的有效学生证。 Po对象设计: StudentCard. Java : [java] view plain copy print ? public class StudentCard{ private int id; private String cardNo; //getter\setter方法 } Student.java: [java] view

hibernate之一对多映射

烂漫一生 提交于 2020-01-02 03:49:05
目录 第一章 课程简介 第二章 Hibernate中的单向一对多关联 2-1 一对多映射简介 2-2 hibernate的基础配置 2-3 创建HibernateUtil工具类 2-4 在mysql数据库中建表 2-5 创建持久化和映射文件并配置一对多关系 2-6 测试——添加和查询学生信息 2-7 测试——修改和删除学生信息 2-8 set元素的常用属性 第三章 单向多对一关联 3-1 简介 3-2 单向多对一的配置 3-3 测试——添加学生信息 3-4 双向多对一测试 第四章 inverse和cascade属性 4-1 inverse属性的用法 4-2 cascade属性的用法 4-3 测试——信息查询 源码地址: https://github.com/weiliangchun/JavaCode/tree/master/hibernateImooc/1-2Hibernate-one2many 第一章 课程简介 映射类型 一对多(one-to-many) 多对一(many-to-one) 一对一(one-to-one) 多对多(many-to-many) 第二章 Hibernate中的单向一对多关联 2-1 一对多映射简介 如:一个班级对应多个学生 在数据库中,可以通过添加主外键的关联,表现一对多的关系 通过在一方持有多方的集合实现,即在“一”的一端中使用 元素表示持有“多