JBossDO: 又一个免费的JDO产品现身

原创 2003年07月07日 09:49:00

JBossDO正式公布

最近,JBoss在其4.0版的内部开发版4.2中公布了它的JDO实现产品:JBossDO,为免费JDO产品的阵营又添了一位生力军!

 

说起JBoss,我不由得想起了我的EJB开发历程。三年前,我阴差阳错地陷入了EJB开发的泥潭,当时还是J2EE1.2规范,由于是Java数据库开发的大热门,所以我们也只好跟上这个风,要不人前人后,怎么好意思抬头呢(可别当真)? 我们当时用的是WebLogic5.1,开发BMP方式的实体Bean,其中的酸甜苦辣,真是一言难尽,往事不堪回首Java中……估计很多朋友也有过相似的经历,设计JavaBean、实现EJB接口、Home接口、编写具体的BMP Bean,一堆SQL,编译,打包,EJB编译,关闭服务器,上传,启动服务器……这些都是对代码有一点点改动所需要的完整过程,其中的调试过程简直是令人窒息!当时的几个程序员痛苦至极,整天寻死觅活的,看了真让人心疼。不过我也是其中之一,那种痛苦至今记忆犹新,直到今天,想起这些时刻还常常犯事恶心,总有一种想吐的感觉。

虽然J2EE是个规范化的东西,但在具体的服务器上进行开发,比起原先的JDBC+SQL来,工作量非但没减少,反而增加了很多,有一种生拉硬套的感觉,结果导致设计别扭,开发缓慢,调试麻烦,BUG多多。不过既然EJB是规范,那我们就应该适应它,以前喝不惯可口可乐,但它是个规范,慢慢调整自己的口型,现在不也习惯了?华主席说过,凡是毛主席说过的,都是正确的,在Java世界里,Sun是大哥大,凡是Sun提出的,我们也应该坚决执行!于是,我开始将这些开发的繁琐,归咎于WebLogic,接着就开始研究不同的J2EE服务器,这样,我看了WebSphere,Sun的DynamicsXXX(记不清楚了),Oracle的Application Server,等等,其中还有一个令人一阵惊喜的产品:金碟的阿派斯!它可是一个完全国产的东东,总算走在了时代的前沿。不过这个产品配置同样麻烦,后来进展也比较缓慢,与当今的IBM和BEA两大巨头无法同日而语。我继续研究J2EE服务器,最后压轴的当然就是今天的主角:JBoss,一个开放源码的免费J2EE服务器!自动类更新检测,EJB热发布,一切是那么的美好!JBoss最注重的就是易用性,方便开发、减少手续、节省时间是其最大特色。

实践证明,易用性是让开发人员在如今新技术层出不穷的时代最为推崇的东西,谁抓住一点,谁就得到程序员的心!看看.NET的C#,看看JDK1.5的改进,看看J2EE规范不断的改进,看看JDO……

EJB在近几年也不断发展出新的规范,现在已经是2.1版了,每一个版本都有着不同程度的易用性改进,比如EJBQL,在不远的将来,可能在3.0版本中还会将EJBQL扩展为全动态的!JBoss紧抓住这些特点,在省事、省心方面下了很大功夫,性能也不断优化,慢慢地成熟起来,终于有一天,JBoss可以跟Sun主席叫板了!前一阵的JBoss与Sun的不愉快说明了这一点,所谓树大招风,不,应该是势大心高,JBoss逐渐显出霸气!

JBoss中开始主推一个新的开发概念:面向方面的编程(Aspect-Oriented Programming,简称AOP),这确实是个在层次上高于OOP的好东东,可以让关注不同方面(性能、日志、安全等等)的开发人员专注于编写相关的代码而不互相干扰,最后又天衣无缝地集成在一起成为稳定的系统。这个概念虽然已经提出来几年了,但还不流行,属于比较前位的概念,JBoss这么一搞,可能本来Sun想提出来的,结果被JBoss抢了先手,你说Sun气不气?(纯属猜测,请勿当真)。

JBoss很想在自己的J2EE服务器中加入新的特性,而Sun把持着规范,在规范兼容性上面向JBoss捅了一刀,告诉它:“喂,哥们儿,悠着点,别太冒头了,有些东西应该让领导来提,别自己想得太超前了!” JBoss当然不买帐,它批评Sun对Java规范的独揽大权而做事拖遢,进展缓慢(其实我对Sun的这方面也很不满意,只不过我还没写出JBoss这样的产品,唉,英雄气短!),而JBoss深得人心,应该在Java世界里给个名份才行!是不是感觉有点象二奶逼宫?呵呵……

好了,我们回到主题上来,JDO是Sun为简化数据库开发提出的新规范,目标是透明的对象存储。这种好东东,JBoss当然不会放过,也许这也是JBoss和Sun言归于好的契机吧!我们看到,JBoss在很短的时间内选择了JDO这个方面,并且做出了产品,而且还是免费的,实在是功不可没。至此,免费产品家族在TJDO、XORM、OJB的基础上,又多了一个JBossDO!不过目前的JBossDO只能用在JBoss服务器中,以后可能会放开限制。JBossDO目前还有一些其它限制,比如不支持继承,不支持自动创建数据库结构等等,这些应该都算是实用性的绊脚石,希望在不远的将来能看到更成熟的JBossDO产品!

附注:经过对JBossDO的一番研究后,我不得不给大家带来一点负面的信息:JBossDO不完全符合JDO规范,除掉前面说过的不支持继承之外,还有以下明显的冲突:

1、对数据的更新不采用事务:JDO规范要求所有对数据进行更新的操作必须放到一个transaction中,方法是PM.currentTransaction()对象的begin()和commit(),但在JBoss的示范代码中,很明显没有事务处理语句,对数据的更新只是放到getPersistenceManager()和pm.close()之间,这一点不利于实现乐观事务控制(Optimistic Transaction,JDO的重要可选特性之一)。

2、查询语言不符合JDOQL规范,JDOQL要求查询的断言符合Java语言规范,比如等值比较使用“==”,而与操作使用“&&”等等,但JBossDO显然不符合这些规范。

难道这又是JBoss再一次向Sun叫板?平心而论,我并不支持JBoss的这些做法,其它所有的JDO产品都是按照规范来的,虽然我不是老夫子,但JBoss此举实在令人费解。这些问题还有待进一步研究。

最新消息:JBoss负责人已经修正和解释了上面提到的两个问题,第一个问题是因为他们使用的是JBoss服务器的JTA;第二个问题是示范代码写错了。请看这里:http://www.jdocentral.com/forums/index.php?s=5e0542b8ce25715faf2783f15cd1f72f&act=ST&f=5&t=787&st=0&#entry4075

 

本文的版权属于笔者本人,但欢迎转载,前提是注明出处和原作者。另外,欢迎在我的专栏中查看我的另几篇文章,并提出宝贵意见!

 

 

 

Jdbc、Jdo方面问题

87、Class.forName的作用?为什么要用? 答:调用该访问返回一个以字符串指定类名的类的对象。 88、Jdo是什么? 答:JDO是Java对象持久化的新的规范,为javadata ob...
  • u010129251
  • u010129251
  • 2015年04月02日 17:43
  • 514

电商概论上课笔记-作业四

//2015年2月21日 //因为课程冲突,只是偶尔去蹭了几节课 //有关互联网、电商的一切,不同于其他学科,在社会上已经被讨论的很热烈了,因此老师上课难度变的很大。 1.互联网产品和服务为什么...
  • u013599826
  • u013599826
  • 2015年02月22日 09:34
  • 883

JDO与JPA哪个更好?

今天偶然在网上看到了JDO,而我以前学的是JPA,那么两种有什么联系呢?或者说哪个更好?下面我先介绍两种的含义。 JDO的全文是:Java Data Object,就是对象持久化的新的规范。也是一个...
  • wu560130911
  • wu560130911
  • 2013年03月20日 17:09
  • 1552

产品经理如何托管原型?

或许作为产品经理的你,会遇到这样的问题:在用Axure发布了原型后,不知道用什么好的方式给开发。反正我是这样的,以前一直用SVN存放需求,并将原型对应的URL地址直接发给开发。   使用SVN虽...
  • qq_32506555
  • qq_32506555
  • 2017年03月09日 12:32
  • 356

DataNucleus之JDO操作示例

JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。注意JDO是一种规范,而不是一个产品。而DataNucleus正是实现J...
  • xtayfjpk
  • xtayfjpk
  • 2014年05月08日 17:00
  • 2478

Android编程权威指南:第21章挑战练习:有一个隐式intent

先添加一个新的用于打电话的Button,布局添加好后给这个Button添加一个时间监听器。mCallButton = (Button)v.findViewById(R.id.crime_callBut...
  • onevo1
  • onevo1
  • 2015年08月11日 18:03
  • 573

Hive并发情况下报DELETEME表不存在的异常

线上脚本在并行某些hive任务后,偶然会报出一个DELETEME表不存在的异常,异常信息大致如下: FAILED: Error in semantic ana...
  • zxc2zxc120
  • zxc2zxc120
  • 2014年10月28日 17:53
  • 729

商业模式新生代之免费商业模式

最近打算每逢周末抽一天时间学习下商业模式,纯工程师思想无法创
  • jinshengtao
  • jinshengtao
  • 2014年11月15日 21:26
  • 2810

Navi.Soft31.产品.登录器(永久免费)

电商平台和传统店铺相比,确实方便不少,直接在网上下单,快递直接送货到家。这其中,做电商平台的童鞋表示压力很大,因为可能同时开很多店铺,每个店铺都要登录、查看订单量、发货拣货等,非常辛苦。...
  • xiyang1011
  • xiyang1011
  • 2017年11月15日 11:46
  • 82

JDO快速入门指南

JDO快速入门 Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语...
  • chunyufeiyun
  • chunyufeiyun
  • 2013年09月02日 08:44
  • 776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBossDO: 又一个免费的JDO产品现身
举报原因:
原因补充:

(最多只允许输入30个字)