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层的应用程序
lishixinzhi/Article/program/Java/ky/201311/28136
数据持久层位于领域层和基础架构层之间。
由于对象范例和关系范例这两大领域之间存在“阻抗不匹配”,所以把数据持久层单独作为J2EE体系的一个层提出来的原因就是能够在对象-关系数据库之间提供一个成功的企业级映射解决方案,尽最大可能弥补这两种范例之间的差异。
扩展资料:
J2EE的三层结构是指表示层,业务逻辑层以及基础架构层,这样的划分非常经典,但是在实际的项目开发法中,开发者通常对三层结构进行扩展来满足一些项目的具体要求。
一个最常用的扩展就是将三层体系扩展为五层体系,即表示层、控制/中介层、领域层、数据持久层和数据源层。
在J2EE的规范中,为EJB定义了两种持久化的解决方案:一种是BMP,另一种是CMP,其中CMP不需要将SQL语句加入到代码中。
在采用J2EE的应用中,EJB CMP方式得到了广泛应用。更加引人注意的是,随着EJB规范的发展,CMP也包含了一些高级关系的内容。
但是,CMP的使用比较复杂,对很多开发人员来说比较难以掌握。而且,不是在所有的情况下都适合在系统中采用EJB,而且想要非常清楚的了解EJB规范也是非常费时的。
在用EJB编码前,先要让专家理解API,然后需要了解每一个容器部署时所要关注的技术。此外,许多情况下商用容器的性能和支持也不是很好。
参考资料:
想画出均匀服帖的底妆肯定少不了粉底液了。很多**姐在购买底妆产品的时候都会选择比较出名的品牌,其实有一些小众品牌的底妆产品也超级好用,不出名可能只是因为品牌没有做好推广。接下来小编就给大家推荐一些小众又好用的底妆产品吧。
一、露华浓粉底液这款粉底液简直就是我的心头好了,这是一个泰国的品牌,持妆效果一级棒,号称24小时不掉妆。它里面还添加了滋养肌肤的维生素e,上脸也会更加服帖自然。这么好用的粉底液却只要几十块钱,非常适合各位学生党以及贫民窟女孩。
二、红地球草本粉底液红地球草本粉底液最吸引我的地方就是它号称一款养肤型的粉底液,不会伤害我们的肌肤。这款粉底液上脸也是超级水润贴肤,能够打造奶油肌的效果,缺点就是遮瑕力比较薄弱,比较适合脸上没有太多瑕疵的**姐。
三、CMP矿物精华粉底液这款粉底液真的非常小众了,很多**姐可能没有听说过,但这款粉底液也是非常好用。这款粉底液的质地比较轻薄,特别适合夏天使用,不会有厚重感,并且它对于敏感肌也是非常友好。它的持妆能力也不错,四五个小时基本上没有问题。各位读者,你们用过最好用的小众底妆产品都有哪些呢?欢迎在评论区里留言讨论一下。
欢迎分享,转载请注明来源:品搜搜测评网