• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

JDO、EJB/CMP、Hibernate和Amber比较

发布: 2007-7-14 21:19 | 作者: 佚名    | 来源: 网络转载     | 查看: 10次 | 进入软件测试论坛讨论

领测软件测试网  JDO的优点:
  
  ● JDO的生命周期状态机(lifecycle state machine)是正确的用法。任何其它的O/R映射工具都应该使用JDO的生命周期或者它的子集(例如:如果不支持事务)。记住,JDO生命周期是为JDO实现服务的。大部分用户不需要了解其中很复杂的内幕。网页Amber生命周期中有些图示。
  
  ● PersistentManager API对如何管理JDO对象的状态有一定的优势和价值。
  
  JDO的缺点://小新技术网www.xker.com
  
  ● 查询(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的研究价值远大于它的使用价值
  
  原文内容:
  
  JDO pros:
  The JDO lifecycle state machine is the correct one. Any serious O/R mapper needs to use the JDO lifecycle or a subset (e.g. if transactions aren't supported.) Remember, the JDO lifecycle is for JDO implementors. Most users don't need to see the gory details. The Amber lifecycle page has some diagrams.
  The PersistentManager API has some positives, valuable for managing the state of JDO objects.

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网