- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
per原理机制流程
引入问题
我们在做数据库系统时会遇到类似于这样的问题,由java对象装换成关系型数据库的数据,或者反过来讲关系型数据库中的数据转换成java对象?由于java面向对象,所以有诸如继承,关联,实现,多态等关系,而关系型数据库中的关系模型主要有表,主外键关系等,所以此间转换就会出现关系不匹配的问题,这种问题我们把它叫做阻抗不匹配
hibernate
hibernate是在JDBC之上提供一层薄薄的封装,在提供完全透明的持久化机制的同时又提供尽可能多的灵活性?
标准方面
J2EE提供了两个持久化的手段:JDBC,它是J2SE中访问关系数据库系统的标准API,然而却以一种错误的编程模型来强制开发者用java代码来处理关系思想;另一个是实体Beans ,它是EJB中专门模型化持久化实体的组件,一是不能处理持久对象间的关系,二是使用了糟糕的查询语言,三是难于测试?
ORM(object relational mapping)
由于J2EE持久化标准对于处理对象与关系的尴尬,而且持久化问题的解决方案是由关系-对象映射(ORM)来解决的,它可以透明地持久化普通java对象(POJO(Plain Ordinary Java Object))?因此,ORM框架悠然而生?
1990年,一些商业的ORM工具就出现了,比如TopLink?但由于其价格昂贵?结构复杂并且与Sun的实体bean标准相左,所以很少人会用?
2001年,JDO(java data object)在Java Community Progress()的规范中出现?因其试图建立一个完整的持久层框架,追求标准化陷入僵局;标准很不完善,存在重大缺陷,产品分裂, 也没有一个好的开源免费实现,也没有能够流行?
2001年末,hibernate第一个正式版本对外发布,赢得了开源社区的一片赞誉?
2003年6月8日,hibernate 2的发布,奠定了成功的基石?开始进入国内开发人员视野?
2003年末,hibernate获得了Jolt 2004大奖以及被jboss收购,确立了hibernate在java orm架构中的主导地位,ORM工业标准?
2005年3月,hibernate 3正式发布?
成功之道
快速发布,即时响应
避免过度设计
集权
10分钟之内把Hibernate跑起来
何为hibernate
创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据?运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换?在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询?要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可?类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们?
持久层设计
持久层概念
专注于实现持久化的一个相对独立的领域,可以通过一个简单的逻辑图表达?
ORM(object relational mapper)对象-关系型数据映射组件
优点:
减少乏味的代码
更加面向对象的设计
更好的性能
更好的移植性
缺点:
粒度问题granularity
关联问题associations
……
设计模式
工厂模式factory
代理模式proxy
decorator模式
dynamic proxy模式
资源管理模式
DAO(data access object)模式
= 1 \* ROMAN I.DAO模式的实现层次:
data accessor模式
实现数据访问与业务逻辑分离,将数据访问的实现机制加以封装,与数据的使用代码加以分离,从外部来看,data accessor提供了黑盒式的数据存取接口?
active domain object模式
实现业务数据的对象化封装
= 2 \* ROMAN II.优点
数据存储逻辑分离
数据访问底层分离
资源管理和调度分离
数据抽象
数据库连接池connection pool
基本原理:在内部对象池中维护一定数量的数据库连接,对外暴露数据库连接获取和返回方法?
优点:
资源重用
更快的响应速度
新的资源分配手段
统一的连接管理,避免数据库连接泄漏
解藕合设计
应用层:应用逻辑与数据逻辑分离
资源层:逻辑结构与物理结构分离
体系结构
概况
A.一个非常重要的hibernate体系结构概要图:
可以看出,hibernate是使用数据库和配置信息为应用程序提供服务(以及持久化对象)?
B. 轻型体系结构图
C. 体系结构方案
实例状
文档评论(0)