快速业务通道

JAVA数据对象应用程序接口Castor使用参考 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

JAVA数据对象应用程序接口Castor使用参考

时间:2011-02-15

exolab旗下的castor是目前流行的、开放源码的JDO实现包。它主要用来实现O/R Mapping。运用该软件包可以大大减轻程序员在处理对象-关系数据库 的负担。本文介绍了Castor的基本用法, 并用有大量代码实例进行解释。

内容提要:

· 打开JDO数据库 Client应用

· J2EE应用

· 使用JDO数据库对象

· 区别瞬时JDO对象和持久JDO对象

· OQLQuery

· 创建与更新和删除

· 使用JDO和XML

打开JDO数据库

Castor JDO支持两种类型的环境,Client应用和J2EE服务器。Client应用被用来负责配置数据库连接和明确地管理事务。J2EE应用使用JNDI来获得预先设好的数据库连接并利用UserTransaction或容器管理事务(CMT)来处理事务。如果你曾经在这两种环境中使用过JDBC,那么应该比较熟悉这两种模型和他们之间的区别。

Client应用

Client应用负责定义JDO数据库配置,和明确地管理事务处理。数据库通过一个单独的XML文件被配置 并连接到一个Mapping文件。在例子代码中我将数据库文件命名为database.xml,但是你可以使用任何别的名称。更多信息参见Castor JDO数据库配置。

org.exolab.castor.jdo.JDO定义数据库名称和属性并且被用来打开数据库连接。在上

可以通过设置setConfiguration文件的URL来要求JDO层装载哪个数据库配置。注意:Castor JDO在建立多个用同样的配置的JDO对象的情况下,将会仅仅只执行一次装载数据库配置。

org.exolab.castor.jdo.Database对象代表数据库的一个打开的连接。

线程 JDO对象定义不是线程安全的,因此不应该在并发多线程中使用JDO对象。还有,建立多个JDO对象仅仅 需要少量额外工作,而JDBC连接在每个事务处理中仅仅打开一次。这样处理的模式能够大大提高性能。

下列的代码片断展示了在Client应用中很常用的组合:“打开数据库,执行SQL,关闭数据库。”

JDO jdo; Database db; // 定义JDO对象 jdo = new JDO(); jdo.setDatabaseName( "mydb" ); jdo.setConfiguration( "database.xml" ); jdo.setClassLoader( getClass().getClassLoader() ); // 打开一个新的数据库连接 db = jdo.getDatabase(); // 开始处理事务 db.begin(); // 以下是一些业务逻辑 . . . // 提交事务处理,并且关闭数据库 db.commit(); db.close();

JAVA数据对象应用程序接口Castor使用参考(2)

时间:2011-02-15

J2EE应用

前提: 假设我们的J2EE容器内嵌支持Castor。

J2EE应用依赖于J2EE容器(Servlet,EJB,等等)构成数据库关连和使用JNDI找到它,使用它。J2EE应用模型允许应用部署从一个中央的地方构成数据库中心,并且提供了J2EE容器能够管理横跨多重的数据源的分布式的处理能力。

在J2EE环境中,应用程序使用JNDI lookup代替org.exolab.castor.jdo.JDO 来构造JDO对象。专家一般推荐把JDO对象的JNDI放在java:comp/env/jdo 之下的命名空间,这样可兼容JDBC资源列表的规定。

下列的代码片断使用JNDI来查询数据库对象,并且使用UserTransaction来管理事务处理

InitialContext ctx; UserTransaction ut; Database db; // 用JNDI的查询得到databse对象 ctx = new InitialContext(); db = (Database) ctx.lookup( "java:comp/env/jdo/mydb" ); // 开始处理事务 ut = (UserTransaction) ctx.lookup( "java:comp/UserTransaction" ); ut.begin(); // 以下是一些业务逻辑 . . . // 提交事务处理,并且关闭数据库 ut.commit(); db.close();

如果事务是由容器来管理, 比如 EJB Bean在特别是实体 Bean中时,不需要明确地与指明事务的开始和结束提交;应用服务器将会照料那些正

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号