技术开发 频道

Java O/R Mapping技术谁主沉浮?



   英雄气短的JDO


    下面新生代代表JDO隆重登场,JDO绝对属于年轻选手, JDO1.0也不过是2002年四月份才发布,2003年五月份出台1.0.1,目前最新2.0草案已经发布。就为这2.0,江湖上展开的讨论可以说是“血雨腥风”,两大兵团,JDO兵团和CMP兵团争得是不可开交。有兴趣的不妨去瞧瞧,里面也不乏重量级人物。单从这一点来看,它能对CMP产生这么大的冲击,足以说明了这个初生牛犊确有过人之处。JDO的诞生给Java O/R Mapping技术带来很多新特性,特别是它弥补了CMP对面向对象编程的先天不足,JDO提供了完全的面向对象支持:继承,多态。较之与CMP,JDO属于轻量级工具,无需容器支持。不像CMP,要用你就非得整一个Weblogic、Websphere之类的容器。

    JDO的简单易用是最为人们所称道的,无需编写大量无用的接口,不需要继承什么特殊的类,唯一所要做的就是对你的类(Class)文件做一下Enhance。用了JDO,可以说我们的Java程序这下真正面向对象了,我们无需再理会数据库里面有些什么表格了,存取都是以Java Object为对象,所有数据库表格都是自动生成的。这一点可以说也是一次革命。

    在此之前,项目设计阶段,Database Schema设计可以说是个重头戏。而现在用JDO开发,完全不需要数据库设计。那么,我们的Database Schema呢?就是Class啊,JDO会根据Class自动生成相应的数据库表格。从数据库可移植性来看,JDO也是优势明显,应用程序更换数据库时候除了换一个JDBC驱动,换一下数据库URL,无需对程序做任何改动。

    这一点对CMP来说又是处于劣势。从家庭出身来看,JDO也是出生名门,从一开始就处于JCP管理之下。从企业级支持来看,它可以很好的和Session Bean协同工作,对于企业级开发,Session Bean + JDO的方式是Session Bean + CMP方式的一个强有力竞争对手。虽然有这么多优点,不过它的发展之路也非一帆风顺,IBM、Oracle、Bea三大巨头都不支持JDO。不过稍微一想,就可以理解,这并不是JDO本身技术有什么重大缺陷,而是JDO动到这些巨头们的奶酪了。

0
相关文章