上一篇,记录了Hibernate注解----类级别注解以及属性注解详解 ,我们这一节主要讲解的是Hibernate注解----关联映射注解以及课程总结详解. 本节的主要内容: 第3章 关联映射注解 3-1 本章简介 3-2 实体之间的关系 3-3 一对一单向外键关联(一) 3-4 一对一单向外键关联(二) 3-5 一对一双向外键关联 3-6 一对一单向外键联合主键 3-7 多对一单向外键关联(一) 3-8 多对一单向外键关联(二) 3-9 一对多单向外键关联 3-9 一对多双向外键关联 3-10…
这篇文章是我在慕课网上学习Hibernate注解的时候进行手机以及整理的笔记. 今天把它分享给大家,希望对大家有用.可以进行收藏,然后需要的时候进行对照一下即可.这样能起到一个查阅的作用. 本文主要讲解的内容简介 : 第1章 类级别注解 1-1 本章简介 1-2 准备工作 1-3 @Entity注解 1-4 @Table注解 1-5 @Embeddable注解 第2章 属性级别注解 2-1 本章简介 2-2 @Id注解 2-3 @GeneratedValue注解(一) 2-4 @Generate…
一.Hibernate映射文件的作用: Hibernate映射文件是Hibernate与数据库进行持久化的桥梁 二,Hibernate映射文件主要内容:     (1).映射内容的定义: Hibernate映射文件由节点定义映射内容并指定所对应的JavaBean的位置(也可以不在该节点中用package属性指定对应的JavaBean位置,而在该节点下的class节点中的name属性中指定) (2).数据库和JavaBean的关联: Hibernate映射文件中用<hibernate-mappin…
转自 http://blog.csdn.net/a9529lty/article/details/6454924 一.hibernate映射文件的作用: Hibernate映射文件是Hibernate与数据库进行持久化的桥梁   二,Hibernate映射文件主要内容:     (1).映射内容的定义: Hibernate映射文件由<hibernate-mapping package="JavaBean所在包的全路径">节点定义映射内容并指定所对应的JavaBean的位置(…
Hibernate的关联映射--双向1-N关联 对于1-N的关联,Hibernate推荐使用双向关联,而且不要让1的一端控制关联关系,而是用N的一端控制关联关系.双线的1-N关联和N-1关联是两种相同的情形,两端都需要增加对关联属性的访问,N的一端增加引用到关联实体的属性,1的一端增加集合属性,集合的元素为关联实体. Hibernate对双向的1-N关联同样提供了有连接表和无连接表的两种关联映射策略. 1.无连接表的双向1-N关联 无连接表的双向1-N关联,N的一端需要增加@ManyToOne注…
Hibernate的关联映射--单向1-N关联 单向1-N关联的持久化类里需要使用集合属性.因为1的一端需要访问N的一端,而N的一端将以集合(Set)形式表现.从这个意义上来看,1-N(实际上还包括N-N)和集合属性非常相似,只是此时集合里的元素是关联实体. 对于单向的1-N关联关系,只需要在1的一端增加Set类型的成员变量,该成员变量记录当前实体所有的关联实体,当然还要为这个Set类型的属性增加setter和getter方法. 为了映射1-N关联,需要使用@OneToMany注解. 1.无连接…
Hibernate的关联映射--单向1-1关联 对于单向的1-1关联关系,需要在持久化类里增加代表关联实体的成员变量,并为该成员变量添加setter方法和getter方法.从持久化类的代码上看,单向1-1与单向N-1没有丝毫区别.因为N的一端或者1的一端都是直接访问关联实体,只需要增加代表关联实体的属性即可. 对于1-1关联(不管是单向关联,还是双向关联),都需要使用@OneToOne修饰代表关联实体的属性. 1.基于外键的单向1-1关联 对于基于外键的1-1关联而言,只要先试用@OneToOn…
Hibernate的关联映射--单向N-1关联 N-1是非常常见的关联关系,最常见的父子关系也是N-1关联,单向的N-1关联只需从N的一端可以访问1的一端. 为了让两个持久化类能够支持这种关联映射,程序应该在N的一端的持久化类中增加一个属性,该属性引用1的一端的关联实体. 对于N-1关联(不论是单向关联还是双向关联),都需要在N的一端使用@ManyToOne修饰代表关联实体的属性. 1.无连接表的N-1关联 对于无连接表的N-1关联而言,程序只要在N的一端增加一列外键,让外键值记录该对象所属的实…
上篇我们介绍了关联映射的几种形式,有单向多对一,单向一对多,还有双向一对多.本篇接着介绍有关关联映射的其他几种映射方式,主要有以下几种: 基于外键的单向一对一关联映射 基于主键的单向一对一关联映射 单向多对多关联映射 一.基于外键的单向一对一关联映射      具有一对一关联的表结构也是很常见的,比如:一个人对应于一张身份证.于是我们的person表会有一个外键关联到 idcard表的主键,只要这个外键列唯一即可保证person到idcard表的关系由多对一变为一对一,也就是说单向的一对一关联映…
~~~接着之前的Hibernate框架接着学习(上篇面试过后发现真的需要学习以下框架了,不然又被忽悠让去培训.)~~~ 1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1:一对多和多对一映射,举例说明: 学生和老师: 一个老师可以教多个学生 [一对多映射] 多个学生可以被一个老师教[多对一映射] 部门与员工: 一个部门有多个员工[一对多映射] 多个员工属于一个部门[多对一映射] 1.2:多对多,举例说明: 项目和开发员工:[双向一对多即多对多映射] 一个项目有多个开发…
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种: 1.生成文档.这是最常见的,也是java 最早提供的注解.常用的有@see @param @return 等:…
这是我 1 单向一对多: 实体类:(课程类)Grade与(学生类)Student的一对多关系 学生类: public class Student implements java.io.Serializable { // Fields private Long id; private String name; private Integer age; private Long gradeId; //省略set.get方法 } bhm.xml: <hibernate-mapping> <cl…
一:多对一 <many-to-one 1.name:当前类的属性名(关联映射的类) 2.column:属性多对应的类的对应的表的外键(连接条件) 3.class:属性所对应的类的权限定名 4.not-null:不能为空(当持久化当前类对象时,此属性所对应的对象也就是关联映射的对象字段不能为空) 注意:此值为true时,有可能报PropertyValueException:当持久化当前类,当前类被存入数据库,而关联字段对象没有存入数据库,但关联字段又不能为空,则导致异常  当从数据库查询出当前类,…
何为关联映射 由于数据库的表与表之间存在的管理关系,可以分为一对一,一对多和多对多关联,一般情况下,在数据库设计中是通过表的外键来建立各种关系的,在Hibernate中则把数据库表与表之间的关系数据映射成面向对象型的数据关系,即映射文件中建立表之间的关联,对表的操作就转换成了对类的对象的操作. 这里介绍下一对多关联 一对多关联是数据库中用的最多的,例如班级和学生之间的关系,教师与学生之间的关系,部门与职工的关系等.而Hibernate就是通过这种有关联的表,在对一方进行查找时,可以通过查找多方或…
回顾Hibernate: 1. hibernate开发环境搭建 ----> 引入jar: hibernate.jar + required + jpa + 驱动包 ---> hibernate.cfg.xml ---> javabean/*.hbm.xml ---> Application  测试 2.hibernate api ----> Configuration ----> SessionFactory ----> Session ---> Trans…
上篇文章我们对持久化对象进行的学习,了解了它的三种不同的状态并通过它完成对数据库的映射操作.但这都是基于单张表的操作,如果两张或者两张以上的表之间存在某种关联,我们又该如何利用持久化对象进行操作呢?本篇主要介绍的关联映射就是针对有着某种关联的多张表的各种操作,主要涉及内容如下: 组合主键的映射 组件的映射 单向多对一的映射 单向一对多的映射 双向一对多的映射 级联映射 一.组合主键的映射操作      根据我们的上篇文章,对于单一主键,在对象映射配置文件中使用 id标签即可完成配置.但是,往往有…
啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是一对一(一个用户只能有一份档案 一份档案只能属于一个永固) 我们无需建表,Hibernate会检查数据库中有没有对应的表,如果没有,自动生成 我们也可以用来看自动生成的表是什么样子的 一对一外键映射FK 那么接下来是小配置文件 user的小配置文件 <one-to-one name="resu…
在最近java,SSH框架的学习中遇到了这样的一个问题,在Hibernate的开发中一对一关联映射的单向关联,主表会在次表新增一列次表的主键如下图,但是在双向关联中次表不会在表中创建主表的主键一列,这是为什么呢  ,原来是因为mappedBy参数的原因,在不给这个参数时次表会创建主表主键的一列,sql语句也会增多,而设置了这个参数时,次表不会创建主表主键的一列,sql语句也会少,在以后的项目中一定要设置这个参数,可能练习的项目数据量很小看不出差距,但是数据量一大mappedBy参数的作用就体现出…
初学者可以这样理解注解:想像代码具有生命,注解就是对于代码中某些鲜活个体的贴上去的一张标签.简化来讲,注解如同一张标签. 在未开始学习任何注解具体语法而言,你可以把注解看成一张标签.这有助于你快速地理解它的大致作用.如果初学者在学习过程有大脑放空的时候,请不要慌张,对自己说: 注解,标签.注解,标签. 注解语法 因为平常开发少见,相信有不少的人员会认为注解的地位不高.其实同 classs 和 interface 一样,注解也属于一种类型.它是在 Java SE 5.0 版本中开始引入的概念. 注…
复习 hibernate框架 简介j及其搭建: hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库. 1.什么是框架 提高我们的开发效率.可以理解成是一个半成品项目. 2.hibernate框架 dao层框架 操作数据库. 以面向对象的方式操作数据库. orm 思想. 对象关系映射. 通过映射文件配置对象与数据库中表的关系. 3.hibernate框架搭建 1> 导包 required+驱动包 2>…
框架是什么? 框架是用来提高开发效率的 封装了一些功能,我们需要使用这些功能时,调用即可,不用手动实现 所以框架可以理解为一个半成品的项目,只要懂得如何使用这些功能即可 Hibernate是完全面向对象的顶级框架 Hibernate框架的搭建 导包 书写主配置文件 upgrade:升级改善 Hibernate配置文件详解 orm元数据配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe…
转自:hibernate annotation注解方式来处理映射关系 在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用annotation的方式可以更简介,所以这里就简单记录下通过annotation来配置各种映射关系,在hibernate4以后已经将annotation的jar包集成进来了,如果使用hibernate3的版本就需要…
有外键的一方: @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "courseid") public Tcourse getTcourse; 另一方: @OneToOne(mappedBy = "tcourse") public TcourseInfo getTcourseInfo:…
单向N-1关联 <many-to-one> 单向N-1关系,比如多个人对应同一个住址,只需要从人实体端找到对应的住址实体,无须关系某个地址的全部住户.程序在N的一端增加一个属性,该属性引用1的一端的关联实体. 例如下面person实体中的address属性, package map.six11; public class Person { public Integer getId() { return id; } public void setId(Integer id) { this.id…
一.一对一关联 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1)保存员工档案的同时分配给员工一个账号. (2)加载员工档案的同时加载账号信息. 按照外键映射: 关系图: ①创建实体类:Resume.Users 并封装属性 public class Resume { //档案id private Integer resid; //档案名称 private Str…
No.1 映射一对多双向关联关系: 当类与类之间建立了关联,就可以方便的从一个对象导航到另一个或另一组与它关联的对象. 步骤一: 注意:hibernate要求在持久化类中定义集合类属性时,必须把属性类型设置为接口类型(如:java.util.Set) 优点:声明接口类型可以提高持久化类型的透明性,当hibernate调用setEmp()时,传递的参数是hibernate自定义的该接口的类的实例, 如果把setEmp()设置成java.util.HashSet,就强迫hibernate只能把Has…
1.在之前学习了单表的crud操作.在实际应用中,大都是多表关联操作,这篇会学习如何处理多表之间的关系. 2.考察书籍表和书籍分类表的关系.书籍表和书籍分类表之间是多对一的关系.数据库的表设计为: 3.在java中,如何使用类的关系来表明表与表之间关系 Book.java public class Book implements Serializable{ private int id; private String name; private String author; private do…
package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity public class Husband extends BaseEntity { @OneToOne(mappedBy = "husband") private Wife wife; public Wife getWife() { return wife; } public void setWi…
1.多对一 product----category category.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibern…
http://blog.csdn.net/yerenyuan_pku/article/details/52885041 使用Spring注解方式管理事务 前面讲解了怎么使用@Transactional注解声明PersonServiceBean底下所有的业务方法需要事务管理,那么事务是如何来管理的呢? 我们知道当每个业务方法执行的时候,它都会打开事务,在业务方法执行结束之后,它就会结束事务.那么它什么时候决定这个事务提交,什么时候决定这个事务回滚呢?原先我们手工控制事务的时候,通常这个事务的提交或…