说到关系,在这个世界无处不在,我们必须以某个关系的节点存在在这个世界网中。比如父子关系,师生关系,上下属关系甚至是危险关系。数据也是一样的,它的存在必为某其他节点做准备。

  Hibernate有七种映射关联,方向分为单向或双向,主要根据需求分析多和一的关联,分别为:

1、单向1-1

2、单向N-1

3、单向1-N

4、单向N-N

5、双向1-N

6、双向N-N

7、双向1-1

  在学习这七种映射关联之前,首先要了解基本映射的一些知识和必备条件。
  一、必备实体类,以*.java命名。
    如Student.java文件
 public class Student {
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;
} }

 

  二、必备配置文件,以*.hbm.xml命名。
  了解hibernate.cfg.xml配置文件:
  1、文档开头引入dtd文件,用来约束xml的命名为其制定了一套标准(提供了一套标签,好吧我承认这种理解有点土)。
  
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

   2、配置数据库以及映射类的地址映射信息。

 

 <hibernate-configuration>
<session-factory>
<!-- 数据库配置 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3307/hibernate_one2many</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property> <!-- 映射类的地址映射信息 -->
<mapping resource="com/juyahong/hibernate/Student.hbm.xml"/>
<mapping resource="com/juyahong/hibernate/Classes.hbm.xml"/>
</session-factory>
</hibernate-configuration>
  三、映射文件,以*.hbm.xml命名。
  如:Student.hbm.xml
  通常我们的实体类可以映射成表,采用<class>标签映射。比如:
1 <hibernate-mapping package="com.juyahong.hibernate">
2 <class name="Student" table="t_student">
3 <id name="id">
4 <generator class="native"/>
5 </id>
6 <property name="name" length="30"/>
7 </class>
8 </hibernate-mapping>
  如上面代码可知,实体类中的普通属性即不包括集合、自定义类和数组的属性,映射成了表字段,采用<property>标签映射。需要注意的是实体类的命名或属性不能和数据库的关键字重复,否则会出错,之前做高校平台-基础系统的时候就出现了这个问题。可以通过table="**" 或 column="**"来重命名。

  有了以上的必备条件后,之后的博客就开始以学生管理系统为例分析七种的映射关联。
  

Hibernate的七种映射关系之基本映射的更多相关文章

  1. Hibernate的七种映射关系之七种关联映射(二)

    继续上篇博客 七.Hibernate双向一对多关联映射:让多的一端来维护关系. 主要是解决一对多单向关联的缺陷,而不是需求驱动的. 1.在Student.java实体类里添加Classes引用.pri ...

  2. Hibernate的七种映射关系之七种关联映射(一)

    关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 一.Hibernate多对一关联映射:就是在“多”的一端加外键,指向“一”的一端. 比如多个学生对应一个班级,多个用户对应一个级 ...

  3. Hibernate(七)多对一单向关联映射

    上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本 次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类 似,只是 ...

  4. hibernate 其中七种关联关系

    写的很好 http://blog.csdn.net/qq_27550755/article/details/50070017

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

    首先我们了解一个名词ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对 ...

  6. SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系

            ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据 ...

  7. Java之旅hibernate(8)——基本关系映射

    何为关系,何为映射,关系这个词想必大家都不陌生.比方你和老师之间是师生关系,你和父母之间是父子或者父女(母子或者母女关系). 关系是存在某种联系物体之间产生的.什么都是可能的.比方你和工具,你仅仅能使 ...

  8. Hibernate基础学习(五)—对象-关系映射(下)

    一.单向n-1 单向n-1关联只需从n的一端可以访问1的一端. 域模型: 从Order到Customer的多对一单向关联.Order类中定义一个Customer属性,而在Customer类不用存放Or ...

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

    一.整理思路: 之前,小编总结过Mybatis的关联映射,接下来,再来总结一下hibernate的相关的关联映射,直接上图: 这张图,就是小编整理总结整个Hibernate的关联映射的一个大致思路. ...

随机推荐

  1. Python time 的应用

    测试如下: import time print("chenfulin") # 返回格林威治西部的夏令时区 print("time.altzone %d" % t ...

  2. 【css】关于 hr 在各浏览器中的问题

    在做页面是有时候会用到分割线 hr,但是在 ie6 和 ie7 下显示很蛋疼,本文将教你如何写出兼容各浏览器的 hr. 首页我们先了解下 hr 在各浏览器下的差异,如下表格:   正常浏览器 ie6. ...

  3. 解决Linux里面未启用网卡的问题

    在Linux中可以使用ifconfig命令查询ip,如下图所示: 这时你会发现会提示command not found,说明安装的CentOS是简易版本的,其中一些命名没有,需要我们手动进行安装.安装 ...

  4. PCL中分割方法的介绍(2)

    (2)关于上一篇博文中提到的欧几里德分割法称之为标准的距离分离,当然接下来介绍其他的与之相关的延伸出来的聚类的方法,我称之为条件欧几里德聚类法,(是我的个人理解),这个条件的设置是可以由我们自定义的, ...

  5. n个括号对的所有可能情况

    所有可能情况的数量为卡特兰数.故求所有可能的出栈情况与此类似. 思路: 若左括号没全插入,则插入左括号: 若已插入左括号数比已插入右括号数多,则插入右括号: #include<stdio.h&g ...

  6. 想做web开发 就学JavaScript

    有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言.我的思绪回到了大学,那时候我用 Pascal.Fortran.C和汇编语言,不过那个时候有不同的目标. 鉴于当前的状况和趋势 ...

  7. 101 个 MySQL 的调节和优化的提示

    英文原文:101 Tips to MySQL Tuning and Optimization MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它 ...

  8. Tornado + Celery + RabbitMQ

    声明:代码是从项目中截取的, 为进行测试 使用Celery任务队列,Celery 只是一个任务队列,需要一个broker媒介,将耗时的任务传递给Celery任务队列执行,执行完毕将结果通过broker ...

  9. PhotoshopCS6常用快捷键速查

    写此文的起因:这学期开了一门多媒体技术课程,主要学习Photoshop软件的操作和使用,发觉该软件异常强大,而且有许多快捷键操作,在学期末时查阅了相关资料,特整理如下,供学习借鉴. 一.工具快捷键 二 ...

  10. e770. 确定按钮租中已选的单选按钮

    When you ask a button group for the currently selected radio button, it returns the selected radio b ...