JDO、EJB CMP、Hibernate和Amber比较
创新互联主营景德镇网站建设的网络公司,主营网站建设方案,成都App定制开发,景德镇h5成都微信小程序搭建,景德镇网站营销推广欢迎景德镇等地区企业咨询
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的研究价值远大于它的使用价值
网站标题:JDO、EJBCMP、Hibernate和Amber比较
转载注明:http://www.gawzjz.com/qtweb/news47/209397.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联