hibernate培训笔记.doc
《hibernate培训笔记.doc》由会员分享,可在线阅读,更多相关《hibernate培训笔记.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年-2023年建筑工程管理行业文档 齐鲁斌创作Hibernate培训教程 作者:刘会军(jfmind) 2006年11月17日hibernate简史3标准方面3ORM(object relational mapping)3成功之道3何为hibernate4持久层设计4持久层概念4ORM(object relational mapper)对象-关系型数据映射组件4设计模式5资源管理模式5解藕合设计6体系结构6概况6实例状态8O/R映射9basic o/r mapping9集合类映射10关联关系映射10组件映射10继承映射10核心接口10分类10详解11数据检索13Hibernate Qu
2、ery Language (HQL)13Criteria queries (QBC)13Native SQL queries13开发13基本配置14高级配置15hibernate最佳实践15参考15hibernate简史hibernate是在JDBC之上提供一层薄薄的封装,在提供完全透明的持久化机制的同时又提供尽可能多的灵活性。相比之ibatis则是面向“语句映射”的层面,使用SQL作为查询语言。标准方面J2EE提供了两个持久化的手段:JDBC,它是J2SE中访问关系数据库系统的标准API,然而却以一种错误的编程模型来强制开发者用java代码来处理关系思想;另一个是实体Beans ,它是EJB
3、中专门模型化持久化实体的组件,一是不能处理持久对象间的关系,二是使用了糟糕的查询语言,三是难于测试。ORM(object relational mapping)由于J2EE持久化标准对于处理对象与关系的尴尬,而且持久化问题的解决方案是由关系-对象映射(ORM)来解决的,它可以透明地持久化普通java对象(POJO)。因此,ORM框架悠然而生。1990年,一些商业的ORM工具就出现了,比如TopLink。但由于其价格昂贵、结构复杂并且与Sun的实体bean标准相左,所以很少人会用。2001年,JDO(java data object)在Java Community Progress(www.jc
4、p.org)的规范中出现。因其试图建立一个完整的持久层框架,追求标准化陷入僵局;标准很不完善,存在重大缺陷,产品分裂, 也没有一个好的开源免费实现,也没有能够流行。2001年末,hibernate第一个正式版本对外发布,赢得了开源社区的一片赞誉。2003年6月8日,hibernate 2的发布,奠定了成功的基石。开始进入国内开发人员视野。2003年末,hibernate获得了Jolt 2004大奖以及被jboss收购,确立了hibernate在java orm架构中的主导地位,ORM工业标准。2005年3月,hibernate 3正式发布。 成功之道l 快速发布,即时响应l 全面的回归测式l
5、追求卓越l 避免过度设计l 集权l 文档l 避免标准化l 10分钟之内把Hibernate跑起来l 开发人员的责任感l 易用的、可更新的wiki网页何为hibernate创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hi
6、bernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。持久层设计持久层概念专注于实现持久化的一个相对独立的领域,可以通过一个简单的逻辑图表达。ORM(object relational mapper)对象-关系型数据映射组件优点:l 减少乏味的代码l 更加面向对象的设计l 更好的性能l 更好的移植性缺点:l 粒度问题granularityl 子类型问题subtypesl 同一性问题identityl 关联问题associationsl 对象导航问题navigation设计模式l 工厂模式factor
7、yl 代理模式proxyl decorator模式l dynamic proxy模式资源管理模式A. DAO(data access object)模式I.DAO模式的实现层次:l data accessor模式实现数据访问与业务逻辑分离,将数据访问的实现机制加以封装,与数据的使用代码加以分离,从外部来看,data accessor提供了黑盒式的数据存取接口。l active domain object模式实现业务数据的对象化封装II.优点l 数据存储逻辑分离l 数据访问底层分离l 资源管理和调度分离l 数据抽象B. 数据库连接池connection pool基本原理:在内部对象池中维护一定数
8、量的数据库连接,对外暴露数据库连接获取和返回方法。优点:l 资源重用l 更快的响应速度l 新的资源分配手段l 统一的连接管理,避免数据库连接泄漏解藕合设计l 应用层:应用逻辑与数据逻辑分离l 资源层:逻辑结构与物理结构分离体系结构概况A.一个非常重要的hibernate体系结构概要图:可以看出,hibernate是使用数据库和配置信息为应用程序提供服务(以及持久化对象)。B. 轻型体系结构图C. 体系结构方案 实例状态一个持久化类的实例可能处于三种不同状态中的某一种,这三种状态的定义则与所谓的持久化上下文(persistence context)有关。hibernate的session对象就是
9、这个所谓的持久化上下文:l 瞬态(transient)该实例从未与任何持久化上下文关联过,它没有持久化标识(相当于主键值)。l 持久化(persistent)实例目前与某个持久化上下文有关联,它拥有持久化标识,并且可能在数据库中有一个对应的行,对于某一个特定的持久化上下文,hibernate保证持久化标识与java标识等价。l 脱管(detached)实例曾经与某个持久化上下文发生过关联,不过那个上下文被关闭了,或者这个实例是被序列化到另外的进程。它拥有持久化标识,并且在数据库中可能存在一个对应的行。对于脱管状态的实例,hibernate不保证任何持久化标识和java标识的关系。持久化对象的生
10、命周期(lifecycle):O/R映射basic o/r mappingi.映射定义(mapping declaration)以java为中心的映射语言,易读,可手工修改的xml文档。是按持久化的类定义创建而非数据库中的表。ii.hibernate类型iii.集合类映射关联关系映射组件映射继承映射核心接口分类显示的接口可以近似地分为如下几类: 由应用调用以完成基本的CRUD和查询操作的接口。这些接口是应用的业务/控制逻辑对Hibernate的主要的依赖点。它们包括Session,Transaction和Query。(Interfaces called by applications to p
11、erform basic CRUD and querying operations. These interfaces are the main point of dependency of application business/control logic on Hibernate. They include Session, Transaction, and Query.) 由应用的底层代码调用以配置Hibernate的接口,最重要的是Configuration类。( Interfaces called by application infrastructure code to conf
12、igure Hibernate, most importantly the Configuration class.) 允许应用对Hibernate内部出现的事件进行处理的回调接口,例如Interceptor,Lifecycle和Validatable接口。(Callback interfaces that allow the application to react to events occurring inside Hibernate, such as Interceptor, Lifecycle, and Validatable.) 允许对Hibernate强大的映射功能进行扩展的接口
13、, 例如UserType ,CompositeUserType和IdentifierGenerator。这些接口由应用的底层代码实现(如果需要的话)。( Interfaces that allow extension of Hibernates powerful mapping functionality, such as UserType, CompositeUserType, and IdentifierGenerator. These interfaces are implemented by application infrastructure code (if necessary).
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hibernate 培训 笔记
限制150内