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

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. 这是映射的简单小例子,以后将会详细介绍。
分享到:
评论

相关推荐

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

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

    ORM映射关系配置

    实现Hibernate框架中一对一,一对多,多对多关系的单向和双向配置总结!

    Hibernate数据持久层框架.rar

    是一款面向对象的ORM框架,JPA不需要关心数据库字段,通过注解将数据库表与实体完成映射,在java中的操作只需要对实体进行操作即可。 什么是ORM? ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象...

    hibernate资源框架

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    Java框架hibernate基础教程,简单上手。

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    Hibernate框架包

    轻量级JavaEE应用的持久层框架,是一个完全的ORM框架。(说完这句话,肯定有很多人懵圈了,下面我来一个个解释)  持久化:将我们想要保存的数据保存到硬盘上,也就是我们电脑的磁盘上,为什么叫持久化呢,就是数据...

    免费开源-Hibernate 的核心对象/关系映射功能

    Hibernate ORM 是一个强大的 Java 对象/关系映射解决方案,可以轻松地为应用程序、库和框架开发持久性逻辑。 Hibernate 实现了 JPA,即 Java 中对象/关系持久性的标准 API,而且还提供了一组超出规范的广泛功能和 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     11.1.3 Java大对象类型的Hibernate映射类型  11.1.4 JDK自带的个别Java类的Hibernate映射类型  11.1.5 使用Hibernate内置映射类型  11.2 客户化映射类型  11.2.1 用客户化映射类型取代Hibernate组件  11.2.2 ...

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

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

    hibernate框架的环境搭建

    hibernate框架的环境搭建,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架

    学习笔记,hibernate框架入门

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    自定义Orm框架的实现

    该项目是一个Hibernate框架的简单实现,里面通过Jdk5.0的Annotation实现从对象到数据库之间的映射, 功能类似于小型的Hibernate框架

    hibernate的jar

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    Hibernate:java对象持久化技术详解

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    hibernate基础实验

    (1) Hibernate是一个面向Java环境的对象/关系数据库映射工具,Hibernate不仅管理Java类型到数据库表的映射,还提供查询数据和操作数据的OO方法。 (2) Hibernate对JDBC进行了轻量级的对象封装,使Java程序员可以...

    支持多数据库的ORM框架ef-orm.zip

    间接依赖仅有commons-lang, slf4j等7个通用库,作为一个ORM框架,对第三方依赖极小。简单直接的API 框架的API设计直接面向数据库操作,不绕弯子,开发者只需要数据库基本知识,不必学习大量新的操作概念即可使用API...

    Hibernate 中文api文档下载 .zip

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以...

    基于Hibernate的对象关系映射研究

    本文分析了基于Hibernate框架的两种对象关系映射策略,并比较了三种继承映射策略的优缺点,设计了一种基于Hibernate的ORM持久化层的系统架构,该架构结构清晰、开发效率高,具有较高的应用价值。

    hibernate-orm-5.6.3.rar

    Hibernate数据持久层框架是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate...

Global site tag (gtag.js) - Google Analytics