知识大全 实体CMP-EJB和Hibernate大比拼
Posted 知
篇首语:对所学知识内容的兴趣可能成为学习动机。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 实体CMP-EJB和Hibernate大比拼相关的知识,希望对你有一定的参考价值。
实体CMP-EJB和Hibernate大比拼 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
J EE领域热切的盼来了一种非常流行的开源技术 它就是Hibernate 这个技术被提升到JCP(一种Java规范组织)标准中去了 从J EE开发者反馈的信息来看 掌握Hibernate知识是所有想在J EE领域有所作为的人的必修课
Hibernate是一个对象关系映射的技术 它是一个开源 并且免费的技术 由SourceFe Net开发 在过去 有许多的类似的对象关系映射技术 TopLink就是这样的一种工具 后来被Oracle所采用 来自SourceFe的Hibernate和Apache的OJB也都是非常知名的对象关系工具 开源并且免费 JDO也要被归为这一类
Gavin King是Hibernate的负责人 而Craig Russell 和David Jordan是JDO的主要设计者 JDO是由SUN牵头做的 由于一些技术的原因 今天JCP规范中的大多数成分有利于Hibernate 而不是JDO 从表面上它们没有什么区别 语法和一些处理方法看起来大多数相同 但是 Hibernate的语法更简单易学
非常有趣的是Craig Russell为SUN工作 而Gavin King 为JBoss工作 资料表明JCP是一个非常民主的社区组织 SUN并没有强制规定一些条条款款 保护自己的语言和企业级的用户
EJB 是目前最新的版本 很大程度上受到了Hibernate的影响 一些读者将EJB 和Hibernate等同起来 Oracle支持EJB 提议 而它是j ee领域中重要的数据库公司 那么EJB 前景就会很好 从J EE这个名字本身 就能看出它是一种企业级的技术 并且EJB本质上就是针对这些企业级的应用 由于存在提供的内置容器服务 只有Hibernate和EJB联合使用 Hibernate才能凸显其重要性 因此Hibernate转向到EJB是不可避免的
EJB有三种类型的Bean 一种类型是会话Bean 存在于企业容器中 可以被认为是一种功能Bean 以RMI IIOP方式调用
ORM工具有时和会话Bean一起使用 最近主要的问题是过去ORM工具具有所有权的 价格昂贵的问题 但是现在 可靠 开源的ORM工具可以得到 并且Richard Monson Haefel承认使用ORM工具 替代实体bean 是一种非常安全 并且很有开发效率的方法
另外一个类型实体Bean就没有这么走运了 EJB EJB 和随后的EJB 在关于实体Bean规范方面做了许多的改变
我们能够说实体bean是一个 Attribute bean 或者 property bean 带有setter 和getter方法 以RMI IIOP方式调用 存在于企业容器中 定义一个Javabean的方式是Java中经常提到的话题 同样的方式也要出现在BDK EJB Entity beans Struts JSF 和现在的Hibernate技术中 所以 如何定义Javabean是非常重要并且很有艺术性的
第三中类型就是通信和MDB 从企业这两个字就看出这里面应用程序里面涉及了很多的用户和并发事务 RPC形式非常像打电话 容易导致 占线 问题 如果你所呼叫的人正在给别人的打电话 那么这个时候就导致了线路阻塞 但是 通信的样式中 如在email中 至少要保证信息发送出去 很明显RPC是不合适的 被夸大了 有时 我需要即时响应 由于一些原因 即使像XML web服务 如果问题很严重的话 也应该采用同新样式 MDB(消息驱动bean)事实上越来越被接受
因此 为什么单单实体bean发现不合格 并且规范老在变呢?
实体bean有两种类型 CMP和BMP两种
CMP指的是容器管理持久化 而BMP指的是Bean管理持久化 理论上说 EJB规范并没有规定你采用何种方法来持久化你的对象 你也可以简单的将对象串行化 数据库可以是对象数据库或者是关系对象数据库 或者是XML的 但是 在实际中 数据库经常是指关系数据库 使用SQL
在CMP中 编码员只是在存储器中处理对象 创建新对象 修改它们 删除它们 和查询它们 所有都是在存储器中进行的 保存这些对象到关系数据库表格中去的任务由容器自动完成 编码员不需要些任何的与SQL相关的代码
在BMP中 编码员不得不写SQL语句来持久化对象到关系数据库中
EJB 版本的CMP适合简单的表格 和其它的表格没有复杂的关系 CMP避免对底层数据库的引用 因此 它是很具有可移植的 CMP除了能将数据库持久化到关系数据库中之外 还能持久化到对象数据库中去
但是 CMP并不是适合所有的情况 如果数据库是先前遗留的类型的话 如不能使用SQL 数据库公司提供了自己的代码来持久化 并且这些代码在我们的编程中用来持久化数据 这样的情况就不适合了
但是 真正的问题在于CMP使用了ORM概念 虽然很多的实现迫切需要 它并没有暴露EJB开发商到底实现了多少规范 Weblogic Oracle IBM WebSphere SUN JBoss都是实现了CMP中他们认为适合的部分 使用CMP是不错的 并不仅仅因为它使得代码可移植 很容易写 如果我们采用CMP 更多的原因是EJB容器能够极大优化性能 因此开发社区希望采用CMP 但是发现CMP不适合复杂的任务
虽然做了一些改进 但是发现CMP不能成为最终的解决方案 它里面没有继承性
虽然EJB容器所提供的服务在真正大的企业级的应用程序中是不可或缺的 但是J EE阵营仍让垂直的划分为两个层 Web层和EJB层 支持Web层的声称EJB的陡峭的学习曲线和容易发生错误的开发环境对于大多数的应用程序是不需要的 他们喜欢有一个对象关系映射工具构建到J EE规范中 并不是只有在EJB存在ORM任务 甚至在Servlets JSP也在使用他们 只不过J EE规范没有对此做规定 ORM工具如OJB JDO 和 Hibernate不只是能够用在EJB容器 还可以用在web容器和一个独立的容器中 使用这样的工具 J EE标准就会使得开发任务简单 无论是开发web层的应用程序还是ejb层的应用程序
cha138/Article/program/Java/ky/201311/28136相关参考
鉴于农村生活污水污染面广、较分散的特点,国外一些发达国家进行了大量的试验研究与实践。如澳大利亚利用污水直接灌溉土壤地,利用耕种的作物来吸收分解污水中污染物质与水分,有效实现了污染物去除和污水减量的目的
鉴于农村生活污水污染面广、较分散的特点,国外一些发达国家进行了大量的试验研究与实践。如澳大利亚利用污水直接灌溉土壤地,利用耕种的作物来吸收分解污水中污染物质与水分,有效实现了污染物去除和污水减量的目的
鉴于农村生活污水污染面广、较分散的特点,国外一些发达国家进行了大量的试验研究与实践。如澳大利亚利用污水直接灌溉土壤地,利用耕种的作物来吸收分解污水中污染物质与水分,有效实现了污染物去除和污水减量的目的
PDA操作系统大比拼之一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 目前PDA市场的主流产品
PDA操作系统大比拼之二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PocketPC 微软
Linux平台数据库大比拼(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 评估大量因素
Linux平台数据库大比拼(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 当第一次有人建议
知识大全 Spring VS. HiveMind 优点缺点大比拼
SpringVS.HiveMind优点缺点大比拼 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
狗狗从古至今都是人类的朋友,当它们加入我们的大家庭时,给我们带来了快乐和欢笑,也给我们带来了安全和抚慰,由此越来越多的家庭选择养这个不可或缺的可爱狗狗。但,对于很多养狗狗的新手来说,都会有这样的烦恼:
谁持彩练当空舞--看Java、C#大比拼 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Jav