Castor概述

本文详细介绍了Castor项目,一个开源的O/R映射工具,其核心功能包括XML映射和Castor JDO。Castor XML提供对象到XML的转换,而Castor JDO提供了一种JDO-like的机制,不完全遵循SUN JDO规范,但支持更多特性。此外,文章还探讨了Castor与SUN JDO、EJB的关系,并提供了数据库连接和事务管理的示例。
摘要由CSDN通过智能技术生成
Castor 是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。它支持分布式目录事务处理和时间;提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。

上面这段是网上的一段评论,大概介绍了Castor的一些特性,我们需要注意的是,Castor所提供的是Castor JDO,而不是SUN所提供的JDO规范(JSR000012),所以在上面的评论中使用了JDO-like这样的评语,在后面我们会进一步讨论这个问题 的。

呵呵,不过在我看来,Castor对我们的意义,最重要的就是其XML映射机制和其独创的Castor JDO的机制了。下面我会分别就这两个问题加以介绍:

一、Castor XML

我 们可以认为这是一个独立的Framework,专门负责与XML打交道。在了解众多的类和API之前,我们有必要了解其整体的构建思想。在OOP中,我们 都知道,对象是类的实体化,我们也知道,在OP中所要完成的工作是将对象持久保存下来,那么相对的,我们同样可以用类似的方法将类的定义和信息也保存下 来,这是否可以称为CP呢?呵呵,不管叫什么名字,在Castor中的XML处理中,就是根据这样的思想完成了两个独立的功能块,一块负责类到XML的保 存和加载,另一块负责对象到XML的保存和加载。具体的构造我们可以参看下图: 
 
如 上图所描述的,marshaller和unmarshaller负责对象和XML文件间的转换。这种转换过程主要在服务器端完成。在运行中,客户端的请求 发送到服务器端后,对内存中的对象进行相应操作,然后将处理完毕的对象marshall成为XML文件,或者进一步将XML文件格式化为HTML文件发送 到客户端。如果以XML文件格式发送到客户端,那么在客户端实行unmarshall操作将XML文件还原为内存中的对象,这样就完成了交互过程。


至 于source generator则和TOPLINK中实现的相类似,不过它没有提供可视化的XML Schema的工具而已。我们编写好描述类结构的XML文件,然后运行Castor提供的source generator就可以自动生成JAVA代码了。有趣的是,它自动生成的代码和BEAN的风格很类似,很容易看懂。

对于XML而言,只要把握了这样的整体,其他的诸如代码生成中的两种模式、映射规范、数据结构问题等细节问题就很简单了,在文档中附有很实用的例子和解释,这里就不再多说了。

二、Castor JDO

要了解JDO首先要认识两个基本的问题:

1、和SUN JDO的关系

Castor JDO和SUN JDO并不相同,Castor JDO是独立于SUN JDO发展起来的,但是它们所完成的工作非常相似。虽然也可以将Castor JDO重新定制成SUN JDO那个样子,但是由于两者在锁定策略上存在的根本差异,这样做并不划算。在内部,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值