如需转载,请说明出处:http://www.cnblogs.com/gudu1/p/6895610.html Hibernate通过关系映射来表示数据库中表与表之间的关系,关系映射可以通过两种方式:配置文件映射和注解映射,本文主要讲解配置文件映射. 关系映射: 1.单向关联关系,表示只有一方维护关系,而另一方并不知道有这种关系,在解除和删除关联关系的时候也要在有外键方进行,否则会抛出异常,因为有外键的约束. 2.双向关联关系.双方都维护关系,无论在哪一方解除和删除关联关系,Hibernate都能…
一. 一对一关联映射 ²        两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²        有两种策略可以实现一对一的关联映射 Ø        主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联. Ø        唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系. 对象模型 实体类: /** 人-实体类 */…
多对多关系映射 多对多建立关系相当于在第三张表中插入一行数据 多对多解除关系相当于在第三张表中删除一行数据 多对多改动关系相当于在第三张表中先删除后添加 多对多谁维护效率都一样.看需求 在实际开发过程中.多对多的映射关系比較常见. 学生选课演示样例,一个学生能够选多门课,一门课也能够由多个学生去选,这样就形成了多对多的映射关系 public class Student implements Serializable { private static final long serialVersio…
六.多对多 - 单向 Ø        一般的设计中,多对多关联映射,需要一个中间表 Ø        Hibernate会自动生成中间表 Ø        Hibernate使用many-to-many标签来表示多对多的关联 Ø        多对多的关联映射,在实体类中,跟一对多一样,也是用集合来表示的. (一) 实例场景: 用户与他的角色(一个用户拥有多个角色,一个角色还可以属于多个用户) (二) 对象模型: (三) 关系模型:     (四) 实体类 Role实体类: public cl…
三.       多对一 –单向 场景:用户和组:从用户角度来,多个用户属于一个组(多对一 关联) 使用hibernate开发的思路:先建立对象模型(领域模型),把实体抽取出来. 目前两个实体:用户和组两个实体,多个用户属于一个组,那么一个用户都会对应于一个组,所以用户实体中应该有一个持有组的引用. (一) 对象模型图: (二) 关系模型:       (三) 关联映射的本质: 将关联关系映射到数据库,所谓的关联关系是对象模型在内存中一个或多个引用. (四) 实体类 User实体类: publi…
1,配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&…
一:为什么使用Hibernate缓存: Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序访问物理数据库的频次,从而提高应用程序的性能. 缓存内的数据是对物理数据源的复制,应用程序在运行时从缓存中读取数据,在特定时间或事件会同步缓存和物理数据源的数据 二:什么是Hibernate缓存: Hibernate缓存分为两种:一级缓存,二级缓存. 1.一级缓存:又称为Session缓存, Session缓存是Hibernate内置的缓存,不能被卸载,生命周期也就是在open和cl…
// package org.crazy.app.domain; import java.util.HashSet; import java.util.Set; import javax.persistence.*; @Entity @Table(name="person_inf") public class Person { @Id @Column(name="person_id") @GeneratedValue(strategy=GenerationType.…
一般使用集成开发环境是,把所需的类库添加到项目属性的库路径中,开发工具在部署时会自动复制所需要的类包到WEB-INF\lib目录下 MyEclipse中: 创建项目,右击项目->myeclipse->Project Facets->Install Hibernate Facets即可 程序结构 1.建表 本例选择Sql Server2008作为数据库 在MySQL中新增一个ztest数据库,建立 CUSTOMER 表 CREATE TABLE CUSTOMER ( CID INTEGER…
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映射. 瞬时态 transisent:(临时态) 持久态 persistent 脱管态 detached:(离线态) 1.1.2 三种持久化对象的状态 Transient瞬时态:持久化对象没有唯一标识OID.没有纳入Session的管理. Persistent持久态:持久化对象有唯一标识OID.已经纳…