Hibernate 培训教程
作者:刘会军(jfmind@163.com)
2006 年 11 月 17 日
hibernate 简史.....................................................................................................................................3
标准方面.....................................................................................................................................3
ORM(object relational mapping)................................................................................................3
成功之道....................................................................................................................................4
何为 hibernate.............................................................................................................................4
持久层设计.........................................................................................................................................4
持久层概念.................................................................................................................................4
ORM(object relational mapper)对象-关系型数据映射组件....................................................5
设计模式.....................................................................................................................................5
资源管理模式.............................................................................................................................6
解藕合设计.................................................................................................................................7
体系结构.............................................................................................................................................7
概况.............................................................................................................................................7
实例状态.....................................................................................................................................8
O/R 映射..............................................................................................................................................9
basic o/r mapping........................................................................................................................9
集合类映射...............................................................................................................................10
关联关系映射...........................................................................................................................10
组件映射...................................................................................................................................10
继承映射...................................................................................................................................10
核心接口...........................................................................................................................................10
分类...........................................................................................................................................11
详解...........................................................................................................................................11
数据检索...........................................................................................................................................14
Hibernate Query Language (HQL)...........................................................................................14
Criteria queries (QBC)..............................................................................................................14
Native SQL queries...................................................................................................................14
开发...................................................................................................................................................14
基本配置...................................................................................................................................15
高级配置...................................................................................................................................16
hibernate 最佳实践...........................................................................................................................16
参考...................................................................................................................................................16
hibernate 简史
hibernate 是在 JDBC 之上提供一层薄薄的封装,在提供完全透明的持久化机制的同时又提
供尽可能多的灵活性。相比之 ibatis 则是面向“语句映射”的层面,使用 SQL 作为查询语言。
标准方面
J2EE 提供了两个持久化的手段: JDBC,它是 J2SE 中访问关系数据库系统的标准
API,然而却以一种错误的编程模型来强制开发者用 java 代码来处理关系思想;另一个是
实体 Beans ,它是 EJB 中专门模型化持久化实体的组件,一是不能处理持久对象间的关系,
二是使用了糟糕的查询语言,三是难于测试。
ORM(object relational mapping)
由于 J2EE 持久化标准对于处理对象与关系的尴尬,而且 持久化问题的解决方案是由
关系-对象映射(ORM)来解决的,它可以透明地持久化普通 java 对象(POJO)。 因此,
ORM 框架悠然而生。
1990 年,一些商业的 ORM 工具就出现了,比如 TopLink。但由于其价格昂贵、结构
复杂并且与 Sun 的实体 bean 标准相左,所以很少人会用。
2001 年,JDO(java data object)在 Java Community Progress(www.jcp.org)的
规范中出现。因其试图建立一个完整的持久层框架,追求标准化陷入僵局;标准很不完善
存在重大缺陷,产品分裂, 也没有一个好的开源免费实现,也没有能够流行。
2001 年末,hibernate 第一个正式版本对外发布,赢得了开源社区的一片赞誉。
2003 年 6 月 8 日,hibernate 2 的发布,奠定了成功的基石。开始进入国内开发人
员视野。
2003 年 末 , hibernate 获 得 了 Jolt 2004 大 奖 以 及 被 jboss 收 购 , 确 立 了
hibernate 在 java orm 架构中的主导地位,ORM 工业标准。
2005 年 3 月,hibernate 3 正式发布。
成功之道
快速发布,即时响应
全面的回归测式
追求卓越
避免过度设计
集权
文档
避免标准化
10 分钟之内把 Hibernate 跑起来
开发人员的责任感
易用的、可更新的 wiki 网页
何为 hibernate
创建一份 XML“映射文档”,告诉 Hibernate 您希望能够保存在数据库中的类,以及它
们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对
象保存为数据。运行时,Hibernate 读取映射文档,然后动态构建 Java 类,以便管理数
据库与 Java 之间的转换。在 Hibernate 中有一个简单而直观的 API,用于对数据库所表
示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然
后告诉 Hibernate 保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它
们,然后告诉 Hibernate 有关它们的信息,这样就能在数据库中保存它们。
持久层设计
持久层概念
专注于实现持久化的一个相对独立的领域,可以通过一个简单的逻辑图表达。
ORM(object relational mapper)对象-关系型数据映射组件
优点:
减少乏味的代码
更加面向对象的设计
更好的性能
更好的移植性
缺点:
粒度问题 granularity
子类型问题 subtypes
同一性问题 identity
关联问题 associations
对象导航问题 navigation
设计模式
工厂模式 factory
代理模式 proxy
decorator 模式
dynamic proxy 模式
评论0