http://blog.csdn.net/yerenyuan_pku/article/details/52761021 上一篇文章中我们学习了Hibernate中java对象的状态以及对象的状态之间如何转换.本文我们将详细讲解Session中的方法. save() Session的save()方法使一个临时对象转变为持久化对象. Session的save()方法完成以下操作: 把新new的对象加入到Session缓存中,使它进入持久化状态. 选用映射文件指定的标识符生成器,为持久化对象分配唯一的…
持久化对象唯一标识——OID 1)数据库中使用主键可以区分两个对象是否相同2)Java语言中使用对象的内存地址区分对象是否相同3)Hibernate中使用OID区分对象是否相同Hibernate认为每一个不同的对象应该具有一个唯一的标识,称这个标识为OID:为了使数据模型与数据库表一样使用主键来进行数据的区分,在数据模型类中声明唯一标识(uuid),作为Hibernate管理对象的唯一标识,并使用该标识与数据库表中的主键进行一一对应:为配合后期框架的使用,还使用该标识设定Java对象区分的规则,…
http://blog.csdn.net/yerenyuan_pku/article/details/52746413 上一篇文章Hibernate框架基础——映射集合属性详细讲解的是值类型的集合(即集合元素是普通类型).现在从本文开始我们就要介绍实体类型的集合(即集合元素是另一个实体)了. 一对多关联关系映射 我们还是以一个活生生的例子来详解一对多关联关系映射吧!就以部门和员工的关系为例. 单向关联:仅仅建立从Employee到Department的多对一关联,即仅仅在Employee类中定义…
Hibernate框架基础 Hibernate框架 ORM概念 O, Object 对象 R, Realtion 关系 (关系型数据库: MySQL, Oracle…) M,Mapping 映射 ORM, 对象关系映射! ORM, 解决什么问题? 存储: 能否把对象的数据直接保存到数据库? 获取: 能否直接从数据库拿到一个对象? 想做到上面2点,必须要有映射! 总结: hibernate与ORM的关系? Hibernate是ORM的实现! Hibernate HelloWorld案例 搭建一个H…
一.对象的三种状态 1.暂时态:当对象刚创建,和Session没有发生任何关系时,当程序运行完就即刻消失,被称为暂时态. 2.持久态:当执行如下代码时,对象变为持久态 Emp e = new Emp(); session.save(); 持久态的对象和Session发生了关系,如执行了save,get,query等方法 Session中会缓存该对象(Session的缓存叫一级缓存) Session再获取对象时,首先去查找一级缓存,如果没有才查询数据库 Session要负责将持久态对象的变化更新到…
http://blog.csdn.net/yerenyuan_pku/article/details/52732990 Java对象持久化概述 应用程序的分层体系结构 基于B/S的典型三层架构  说明: 展现层:提供与用户交互的界面. 业务逻辑层:实现各种业务逻辑. 数据访问层:负责存放和管理应用程序的持久化业务数据. 更详细的三层架构如下图所示:  软件的层必须具备如下特征: 每个层由一组相关的类或组件构成,共同完成特定的功能. 层与层之间存在自上而下的依赖关系,即上层组件访问下层组件的 AP…
http://blog.csdn.net/yerenyuan_pku/article/details/52760627 在Hibernate中java对象的状态 Hibernate把对象分为4种状态: 临时状态 持久化状态 游离状态 删除状态 Session的特定方法能使对象从一个状态转换到另一个状态. 临时对象(transient) 在使用代理主键的情况下,OID通常为null. 不处于Session的缓存中. Session里面是有一个集合的,这个集合我们称为Session的缓存,叫做一级缓…
持久化对象 再讲持久化对象之前,我们先来理解有关session中get方法与 load方法区别: 简单总结: (1)如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来延迟加载该对象. 在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,那没办法,只能抛异常. 由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id…
在hibernate中,他通过配置文件(hibernate,cfg.xml)和映射文件(...hbm.xml)把对象或PO(持久化对象)映射到数据库中表,然后通过操作持久化对象,对数据库进行CRUD.下面简单介绍hibernate中的一些核心组件. ORM: 对象-关系映射(简称ORM),是随着面向对象的软件开发方法发展而产生的.用来把对象模型(实体类)表示的对象映射到基于SQL的关系模型数据库结构中去.这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作实…
http://blog.csdn.net/yerenyuan_pku/article/details/52739871 持久化对象与OID 对持久化对象的要求 提供一个无参的构造器.使Hibernate可以使用Constructor.newInstance()来实例化持久化类. 提供一个标识属性(identifier property).通常映射为数据库表的主键字段.如果没有该属性,一些功能将不起作用,如:Session.saveOrUpdate(). 为类的持久化字段声明访问方法(get/se…