`
897371388
  • 浏览: 537504 次
文章分类
社区版块
存档分类
最新评论

ORM框架Hibernate (三) 对象到关系多对一映射

 
阅读更多
  1. 说明
    1. 下面这几篇博客主要介绍Hibernate中各种映射关系如何来使用,并结合一些实用的例子来进行讲解以及各种属性的含义和设置,首先说一下多对一映射关系,多对一相比大家都已经知道这里也不是主要介绍多对一映射什么含义,也不是说表结构怎么设计,而是这种关系如何在对象模型中体现出来以及从对象模型映射到关系模型,这才是这篇博客的重点。
  1. 对象模型结构图
    1. 这是一张简单的权限管理里面的类图有两个类,一个是User类另一个是Group类,把用户分为不同的组来表示,显然他们之间是聚合关系,如下图:
    2. 在前面我们已经学过聚合关系在代码里面怎么样表示,依赖对象应该含有被依赖对象的一个引用(聚合也是一种依赖),如果知道这一点很容易写出这两个实体对应的代码。
      1. User
      2. package com.bjpowernode.hibernate;
        
        public class User {
        	
        	private int id;
        	private String name;
        	private Group group;
        
        	public Group getGroup() {
        		return group;
        	}
        	public void setGroup(Group group1) {
        		this.group = group1;
        	}
        	public int getId() {
        		return id;
        	}
        	public void setId(int id) {
        		this.id = id;
        	}
        	public String getName() {
        		return name;
        	}
        	public void setName(String name) {
        		this.name = name;
        	} 
        
        }
        

      3. Group
      4. package com.bjpowernode.hibernate;
        
        public class Group {
        	private int id;
        	private String name;
        
        	public int getId() {
        		return id;
        	}
        	public void setId(int id) {
        		this.id = id;
        	}
        	public String getName() {
        		return name;
        	}
        	public void setName(String name) {
        		this.name = name;
        	}
        	
        }
        

  1. 通过xml文件映射到数据库中
    1. 文件里面有一些映射语句、属性什么的各种说明已经都写在了注释里面,我们直接看看注释就会明白了也可以参照以前的一点点经验来理解这一部分映射,从最简单的普通映射开始到实体--表映射。
    2. Group.hbm.xml
      1. <?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 >
        	<!-- 默认情况生成表名与实体名一样,为了不与数据库关键字冲突,table属性可以给表起别名 -->
        	<class name="com.bjpowernode.hibernate.Group" table="t_group">
        		<id name="id">
        			<!-- native会自动识别数据库类型,根据不同数据库生成主键,自增 -->
        			<generator class="native"></generator>
        		</id>
        		<property name="name"></property>
        	</class> 
        </hibernate-mapping>
        <!-- 解释 几个属性-->
        	<!-- 在没有使用Hibernate框架之前,你是否记得自己写的实体类,一个实体类对应于一个表,它的
        	属性对于于数据库表字段,这种对应关系在我们心里成了一个不成文的规定。
        	              但是在Hibernate中同样是这样滴,只不过它把这种对应关系抽象出来了,形成了一种可以配置
        	的文件,我们就感觉多了一些东西,其实是没有多什么,这就是简单实体类的普通映射关系         
        	 -->
        <!-- 解释 几个属性-->

    1. User.hbm.xml
      1. <?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.bjpowernode.hibernate.User" table="t_user">
        		<id name="id">
        			<generator class="native"></generator>
        		</id> 
        		<property name="name"></property> 
        		<!-- 解释 几个属性-->
        			<!-- 
        				many-to-one用来指定同哪个表关联,默认会拿到该表的主键放到这里。
        			    这里加入了column属性是为了避免group与SQL的Group关键字冲突,给列起名。
        			 cascade属性表示级联保存,当保存User实体时也会像Group表中自动插入记录。
        			 -->
        		<!-- 解释 几个属性-->
        		<many-to-one name="group" column="groupId" cascade="save-update"></many-to-one>
        	</class>
        </hibernate-mapping>

    1. 插入数据后,可以看到如下结果
  1. 这是映射的简单小例子,以后将会详细介绍。
分享到:
评论

相关推荐

    后端开发框架HibernateORM框架将Java对象映射到数据库表

    Hibernate:Hibernate是一个优秀的ORM框架,可以将Java对象映射到数据库表,简化了数据库操作的编写。你可以结合Spring框架使用Hibernate来处理持久化操作,实现数据的增删改查。 Spring Data JPA:Spring Data JPA...

    ORM对象关系映射

    对象关系映射(ORM)是一种概念性的、易于理解的模型化数据的方法,基于三个核心原则:简单、传达性、精确性。ORM 方法论提供了概念性的模型化数据的方法,基于数据模型创建正确标准化了的结构。ORM 专门被设计为...

    hibernate 映射关系学习入门 多对多实体映射

    Hibernate是一个对象关系映射(ORM)框架,它允许我们将Java对象(实体)与数据库表进行映射,从而实现了面向对象编程和关系数据库之间的桥梁。Hibernate提供了强大的查询语言HQL(Hibernate Query Language)以及 ...

    开源对象关系映射框架Hibernate知识培训

    标题和描述都在强调"开源对象关系映射框架Hibernate知识培训",这意味着主要内容将围绕Hibernate这一框架,探讨如何进行对象关系映射(ORM)以及相关的学习和应用。 **对象关系映射(ORM)** 对象关系映射(Object...

    hibernate对象关系映射实例

    **标题与描述解析** ...从一对一、多对一到多对多的映射,以及使用SessionFactory和Session进行数据操作,都是初学者掌握Hibernate的重点。通过实际案例和练习,可以加深对这些概念的理解,提高开发效率。

    ORM框架-三层架构

    通过这个“ORM框架-三层架构”的项目,你将能够学习到如何结合ORM框架与三层架构,实现一个完整的应用程序,理解各层间的交互方式,以及如何通过ORM框架高效地操作数据库。这将有助于提升你在实际项目开发中的能力,...

    Hibernate映射解析 七种映射关系

    在Java的持久化框架Hibernate中,ORM(对象关系映射)技术是其核心特性,它允许开发者使用面向对象的方式操作数据库,将数据表与Java对象进行对应。Hibernate通过映射类、映射文件和数据库配置文件来实现这一过程。...

    Hibernate教程20_关系映射案例三

    【标题】"Hibernate教程20_关系映射案例三"主要涵盖了在Hibernate框架中如何进行对象关系映射(ORM)的实践,特别是针对复杂关系的处理。在这个教程中,我们可能会学习到以下关键知识点: 1. **关系映射**:...

    orm框架

    标题中的“orm框架”指的是这一类技术的总称,它通过建立对象模型与数据库表之间的映射关系,实现了数据的透明访问。ORM框架使得开发者可以专注于业务逻辑的实现,而不是数据库层面的细节。 描述中的“orm开源框架,...

    hibernate一对一映射

    总之,Hibernate一对一映射是理解和掌握ORM框架的关键部分,它帮助我们把复杂的SQL操作转化为简单的Java对象操作,提高了开发效率。通过深入学习和实践,我们可以更好地运用这个工具来处理复杂的数据库交互。

    ORM映射与WEB的应用

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

    Net下ORM框架概述

    .NET下的ORM(Object-Relational Mapping)框架是一种用于将对象模型与关系数据库之间的映射工具,使得开发者可以使用面向对象的方式来操作数据库,而无需关心具体的SQL语句。ORM框架简化了数据访问层的开发,提高了...

    Hibernate数据持久层框架是一种Java语言下的对象关系映射解决方案.rar

    它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java开发中最为流行的数据库持久层框架,现已归JBOSS所有。基于LGPL V2.1协议发布。 hibernate_orm 它的设计目标...

    HibernateORM

    Hibernate作为Java领域广泛使用的ORM框架,它极大地简化了数据库操作,将面向对象的编程思想与关系型数据库相结合,使得开发者可以更加专注于业务逻辑,而不是繁琐的SQL语句。在本书中,作者深入浅出地讲解了如何...

    将对象映射到关系数据库.rar

    学习将对象映射到关系数据库的关键在于理解数据库与对象之间的关系,掌握如何定义映射,以及如何利用ORM框架进行数据操作。这份资料可能涵盖了这些基础知识,以及一些高级话题,如事务管理、性能优化等。通过深入...

    hibernate关联关系映射

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问层的编程。"hibernate关联关系映射"是Hibernate的核心概念之一,它定义了如何...

    Hibernate教程18_关系映射案例一

    【标题】"Hibernate教程18_关系映射案例一"主要涵盖了如何在Hibernate框架中进行对象关系映射(ORM)的实践操作。在这个教程中,我们将会深入理解Hibernate如何将数据库的关系模型转换为面向对象的Java代码,以及...

    Myeclipse自动生成Hibernate配置文件及实体类映射ORM

    Myeclipse 自动生成 Hibernate 配置文件及实体类映射 ORM 配置文件 Myeclipse 是一个功能强大的集成开发环境(IDE),它提供了许多实用的功能来简化软件开发过程。在这个示例中,我们将展示如何使用 Myeclipse 自动...

    自定义Orm框架的实现

    ORM(Object-Relational Mapping,对象关系映射)框架是一种技术,它允许程序员用面向对象的方式操作数据库,而无需关心底层SQL语句的编写。在Java领域,Hibernate是一个非常流行的ORM框架,它极大地简化了数据库...

    Hibernate关系映射

    3. **关联映射**:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)四种关系映射,用于描述对象之间的关联关系。 三、配置关系映射 关系映射的配置主要通过以下两种方式...

Global site tag (gtag.js) - Google Analytics