JDO、EJB CMP、Hibernate和Amber比较
创始人
2024-04-07 04:31:03
0

JDO、EJB CMP、Hibernate和Amber比较

JDO的优点:
◆JDO的生命周期状态机(lifecycle state machine)是正确的用法。任何其它的O/R映射工具都应该使用JDO的生命周期或者它的子集(例如:如果不支持事务)。记住,JDO生命周期是为 JDO实现服务的。大部分用户不需要了解其中很复杂的内幕。网页Amber生命周期中有些图示。
◆PersistentManager API对如何管理JDO对象的状态有一定的优势和价值。

JDO的缺点:
◆查询(query)支持不完全。它应该使用类似Hibernate的HSQL查询语言,并使用java.sql.ResultSet作为查询结果。
◆用于重载方法的字段扩展让人觉得比较混乱。最好使用类似Hibernate或者EJB/CMP的方法,并重载它们。

Hibernate的优点:
◆有着正确的数据模型。以POJO为基础的模型是个正确的方向。
◆可配置性(例如对象之间的关系)是个很好的基础。
◆HSQL正是O/R映射语言应该有的。
◆有着完整的API
◆采用简明的Session类作为控制流的清洗器,因为它沿用了Connection的模型

Hibernate的缺点:
◆没有使用JDO生命周期,这是不正确的做法。
◆API(例如查询)还是有点混乱。It's better than the alternative, but using java.sql.ResultSet as the foundation would clean it up.
◆API如果作为一个规范的话,还是不够干净。例如,在使用查询参数(query parameters)时,存在一些应用漏洞。
◆我不认为使用类名作为表的标识是件好事。

EJB CMP的优点:
◆采用工厂类(指Home)查找实例比向Session/Connection对象传递参数获取实例要好。
◆ejbSelect跟上面说的类似。
◆查询名称使用abstract schma是一个很好的解决方案。
◆理论上来说,这种模式在某些方案中可以有更好的复用性。

EJB CMP的优点:
◆CMP不属于EJB规范。它并不是个合适的模型去实现这个目的。已经没有合适的(例如非官方)借口去让EJB3.0中保留CMP。

Amber优点:
◆使用JDBC ResultSet和PreparedStatement做查询

出于某些原因,O/R映射工具通常抛弃强大的ResultSet和PreparedStatement API,而创建自己一套并不是很合适的替代品。O/R查询器应该使用一个外部的SQL(例如HSQL)作为查询语言,并使用ResultSet作为结果集,使用PreparedStatement处理查询参数。可以增加其它的API作为查询子集,就像查询一个单独的实体,但应该使用ResultSet和 PreparedStatement作为基础。

Amber缺点:
◆Amber的研究价值远大于它的使用价值

【编辑推荐】

  1. EJB技术的历史
  2. JavaBean与EJB的不同
  3. 基于EJB技术的商务预订系统的开发
  4. EJB的分类及其各自的功能和应用
  5. J2EE中EJB的专用术语解释

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...