JDO、EJB/CMP、Hibernate和Amber的比较

java持久层框架对比 立即下载

 作者: liu2liu2     来源: 追忆似水年华 来自:http://www.matrix.org.cn/blog/liu2liu2

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 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.
JDO cons:
The query support is completely inadequate. It should use something like Hibernate's HSQL, and should use java.sql.ResultSet as the query result.
The promotion of fields to overloaded methods is messy. It's better to start with methods like Hibernate or EJB/CMP and overload them.
Hibernate pros:
The data model is correct. The POJO model using methods as the basis is the right way to go.
The configuration, esp for relations is a good basis.
HSQL is just about what an O/R map language should be.
The API is adequate.
The explicit Session makes the control flow cleaner, since it follows the Connection model.
Hibernate cons:
It doesn't use the JDO lifecycle model. This is incorrect.
The API, esp the query, is still a bit messy. It's better than the alternative, but using java.sql.ResultSet as the foundation would clean it up.
The API isn't clean enough for a spec, i.e. it has a number of implementation hacks, esp with the query parameters.
I'm not convinced using the class name as the table identifier is a good thing.
EJB/CMP pros:
The factory (home) classes are nice for finding instances rather than passing extra parameters to a Session/Connection object.
The ejbSelect is similarly
Using the abstract schema for the query names is a good solution
In theory, the model can allow for efficient object reuse in some cases
EJB/CMP cons:
CMP does not belong in the EJB spec. It's been contorted to follow a model that's not appropriate for the task. There's no valid, i.e. non-political, excuse for keeping CMP in EJB 3.0.
Amber pros:
Using the JDBC ResultSet and PreparedStatement for queries.
For some reason O/R mappers generally throw out the powerful ResultSet and PreparedStatement API and create their own hacked up and inadequate replacements. O/R queries should use an extended SQL like HSQL as the query language and use ResultSet for results and PreparedStatement for query parameters. Other specialized APIs can be added for particular subsets, like quering a single entity, but the foundation should be ResultSet and PreparedStatement.
Amber cons:
Amber is an experiment rather than an actual competing API.

 

YOLOv5改进 | 注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制,附二次创新) 本文给家大家带来的改进机制是iRMB,其是在论文Rethinking Mobile Block for Efficient Attention-based Models种提出,论文提出了一个新的主干网络EMO(后面我也会教大家如何使用该主干,本文先教大家使用该文中提出的注意力机制)。其主要思想是将轻量级的CNN架构与基于注意力的模型结构相结合(有点类似ACmix)我将iRMB和C2f结合,然后也将其用在了检测头种进行尝试三种结果进行对比,针对的作用也不相同,但是无论那种实验均有一定涨点效果。 阅读详情

相关推荐

本体(Ontology)概述

认识本体        本体(Ontology)的概念源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体可以在语义层次上描述知识,可以看成描述某个学科领域知识的一个通用概念模型。德国学者Studer在1998年给出了本体的相关定义“本体是共享概念模型的形式化规范说明”。这个定义包含了四层含义:即共享(share)...

baijinswpu的博客 7万+

选择JDO还是CMP?

选择JDO还是CMP?由孙宾译自http://www.onjava.com/pub/a/onjava/2003/05/21/jdo.html作者:David Jordan 和 Craig Russell著有《Java Data Objects》一书2003年5月21日  作者注:JDO和CMP方式的EJB目前正在同时向前发展,但采取的是不同的路线。JDO的核心思想是在企业应用软件架构的

sun2bin的专栏 2920

手把手教你用Kali+字典爆破WiFi密码:从抓包到破解的完整流程

本文提供了一份详尽的无线网络渗透测试实战指南,重点讲解如何使用Kali Linux和Aircrack-ng套件进行WiFi安全评估。内容涵盖从硬件选型(如RTL8812AU网卡)、驱动配置、监听模式设置,到使用airodump-ng扫描抓包、捕获WPA握手包,以及利用字典进行离线破解的完整流程。同时强调了在授权环境下进行安全测试的重要性,并给出了相应的网络加固建议。

weixin_28568819的博客 1675

最佳J2EE方案讨论之O-R Mapping: hibernate v.s. CMP,请大家讨论

    -R MappingJ2EE的标准是CMP Entity Bean,而实际应用中受到诟病最多的也是它。我们化了整整半年时间研究CMP2.0的开发方法,目前总算能够将代码量减少到70%,并且有希望减少到90%。我曾经很满足现有的成绩,但是当我真正地阅读了Hibernate后,对CMP2.0的信心彻底动摇了。Hibernate至少比CMP2.0有以下优点:1. 兼容性。 规范一模一样,实现各有

phphot 1975

三极管简单振荡电路实现:从零开始的实战示例

通过一个基础实例,手把手教你如何利用三极管构建简单的振荡电路,深入理解三极管在实际电路中的工作原理与应用技巧。

weixin_32836713的博客 1203

hCaptcha Enterprise绕过方案对比:四种Capsolver任务类型怎么选?

本文深入评测了hCaptcha Enterprise的四种Capsolver任务类型(HCaptchaEnterpriseTask、HCaptchaEnterpriseTaskProxyLess、HCaptchaTurboTask和HCaptchaTurboTaskProxyLess),分析其技术架构、性能表现及适用场景。通过基准测试和成本模型比较,帮助技术团队选择最优解决方案,提升自动化流程的验证通过率与成本效益。

rrr55的博客 323

Hibernate与JDBC、EJB、JDO的比较

常用的数据库操作包括:JDBC、EJB、JDO以及Hibernate。它的各有优缺点:    (1) JDBC:多数Java开发人员是用JDBC来和数据库进行通信,它可以通过DAO模式进行改善和提高。但这种方式在大型应用程序中不容易操作使用,且维护起来相当困难。    (2) EJB:EJB通常是在数据持久技术上的第二个选择,它是通过entitybeans来对数据进行持久化。首先就需要购买一个价位

Crazy coder 2302

OpenClaw 在 Windows 环境下的完整安装、配置和部署指南

介绍Windows环境下OpenClaw的完整安装,配置和部署的全流程

hxbao的专栏 1486

Hibernate、JDO、CMP等技术的热烈讨论

[url] http://www.jdon.com/jive/thread.jsp?forum=16&thread=6062&start=0&msRange=15[/url] [url]http://www.theserverside.com/discussion/thread.jsp?thread_id=19732[/url]

pkk2004的专栏 207

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2631

《C++等级认证CCF-GESP真题解析》专栏总目录

❤️ 专栏名称:《C++等级认证CCF-GESP真题解析》🌸 专栏介绍:中国计算机学会GESP《CCF编程能力等级认证》C++编程(1~8级)历届真题解析。🚀 订阅专栏:订阅后可阅读专栏内所有真题解析,真题持续更新中,欢迎订阅!

人生就是一个不断学习的过程 6292

JDO、EJB/CMP、Hibernate和Amber比较

JDO的生命周期状态机(lifecycle state machine)是正确的用法。任何其它的O/R映射工具都应该使用JDO的生命周期或者它的子集(例如:如果不支持事务)。记住,JDO生命周期是为 JDO实现服务的。大部分用户不需要了解其中很复杂的内幕。网页Amber生命周期中有些图示。全文阅读:http://www.javah.net/JDBC_JDO/20070523/1773.ht

zaowei21的专栏 522

Python爬虫教程:抓取地方政府网站的公开文件与政策信息

Web爬虫是指一种自动化脚本,用于模拟人类浏览器访问网页、提取网页内容的数据抓取工具。发送请求到目标网页;获取网页内容;解析网页内容,提取所需数据;将数据保存或进一步处理。爬虫可以抓取各种形式的数据,如文本、图片、文件等。本教程将重点展示如何抓取地方政府网站上公开的政策文件、公告等信息。许多政府网站都会采取一定的反爬虫措施,防止大量数据被爬取。IP封锁:如果短时间内大量请求来自同一IP,可能会被封锁。验证码:一些网站会使用验证码来验证访问者是否为机器人。动态加载。

2201_76125261的博客 1981

JDO、EJB/CMP、Hibernate和Amber等数据库映射操作等框架的比较

 ● JDO的生命周期状态机(lifecycle state machine)是正确的用法。任何其它的O/R映射工具都应该使用JDO的生命周期或者它的子集(例如:如果不支持事务)。记住,JDO生命周期是为 JDO实现服务的。大部分用户不需要了解其中很复杂的内幕。网页Amber生命周期中有些图示。全文阅读:http://www.javah.net/Hibernate/20070406/90.

zaowei21的专栏 669

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JDO快速入门

<br />JDO快速入门Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访问的接口。有了 JDO,程序员就可以使用类来定义数据对象,然后支撑程序就会根据类的定义来管理对给定数据库的实际的数据访问了。  <br /><br />      JDO是以Sun

liuzhigang1237的专栏 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数据持久化(JDBC/EJB/JDO/OJB/Hibernate)

1。问题域1)持久    数据可访问的而且还必须是持久    持久数据存储就是即使在服务器崩溃的情况下仍能存在的数据存储2)问题域    对象关系的映射(ORM)    持久数据的访问(DA)3)考究点    数据完整性    并发性    连接管理    数据同步2。你还在写sql访问数据库吗?你仍然在Write SQL? 仍然使用JDBC+ SQL(DAO)?当然这是访问持久数据层最原始、最直

NorthernStar, keep on going ahead...... 1953

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【系统分析师之路】第七章 复盘系统设计(Web系统设计)

【系统分析师之路】第七章 复盘系统设计(Web系统设计) 复盘系统设计—Web系统设计【系统分析师之路】第七章 复盘系统设计(Web系统设计)第一部分 综合知识历年真题2019上综合知识历年真题(2分)第二部分 案例分析历年真题2008上案例分析历年真题(75分)2008下案例分析历年真题(25分)2009上案例分析历年真题(25分)2010上案例分析历年真题(25分)2011上案例分析历年真题(25分)2012上案例分析历年真题(25分)2014上案例分析历年真题(25分)2015上案例分析历年真题(25

千月星跡 823

Hibernate、EJB/CMP的比较

Hibernate的优点:● 有着正确的数据模型。以POJO为基础的模型是个正确的方向。● 可配置性(例如对象之间的关系)是个很好的基础。● HSQL正是O/R映射语言应该有的。● 有着完整的API● 采用简明的Session类作为控制流的清洗器,因为它沿用了Connection的模型Hibernate的缺点:● 没有使用JDO生命周期,这是不正确的做法。● API(例如查询)还是有点混乱。It

cRyIng_gG的专栏 1298

数据库I/O:CMP、Hibernate

★什么是“Persistence” 用过VMWare的朋友大概都知道当一个guestOS正在运行的时候点击“Suspend”将虚拟OS挂起,它会把整个虚拟内存的内容保存到磁盘上,譬如你为虚拟OS分配了128M的运行内存,那挂起以后你会在虚拟OS所在的目录下找到一个同样是128M的文件,这就是虚拟OS内存的完整镜像!这种内存的镜像手段其实就是“Persistence”(持久化)...

dengjuanshou7445的博客 195

实体CMP-EJB和Hibernate大比拼

导读:   J2EE领域热切的盼来了一种非常流行的开源技术,它就是Hibernate.这个技术被提升到JCP(一种Java规范组织)标准中去了。从J2EE开发者反馈的信息来看,掌握Hibernate知识是所有想在J2EE领域有所作为的人的必修课。   Hibernate是一个对象关系映射的技术。它是一个开源,并且免费的技术,由SourceForge. Net开发。在过去,有许多的类似的对象

黑客攻防 | .net 源代码下载 | ASP.NET开发 | ORACLE数据库开发 | JAVASCRIPT脚本下载 | java源码下载 715

用JDO替代CMP的应用

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 522
上一篇: Deploy J2EE Project
下一篇: JADE入门知识
mitkook
博客等级 码龄24年 15粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值