快速业务通道

Cayenne,开源ORM盛宴中的另道佳肴,第2部分 - Apache Cayenne的高级特性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
ava 类即是本系列文章第一部分中介绍过的标准 Cayenne 数据库映射 Java 对象,而 Client 端对象持久化 Java 类是一种特殊的专门供 ROP 客户端使用的 Cayenne 数据库映射 Java 对象。它的生成方法和标准的 Cayenne 数据库映射 Java 对象类似。首先如图 2 所示,需要在 Cayenne Modeler 中数据对象的定义面板的 Client Class Defaults区域选中 Allow Client Entities复选框。

图 2. Cayenne Modeler 数据对象定义面板

选中后 Cayenne 默认会在标准数据库映射 Java 对象包的子目录"client"中生成 Client 端对象持久化 Java 类。之后在 CayenneModeler 的程序主菜单中选择 Tools-->Generate Classes, 并按照图 3 所示,在 Code Generation 面板中选择 Client Persistent Objects作为类型来生成数据库映射 Java 对象即可。

图 3. CayenneModeler Code Generation 面板

Cayenne,开源ORM盛宴中的另道佳肴,第2部分 - Apache Cayenne的高级特性(3)

时间:2011-02-05 IBM 王颖初 冯鑫 于敬业

Remote Object Persistence 的客户端编程

在一个客户端程序中使用 Remote Object Persistence 来访问远程数据库和使用 Cayenne 访问本地数据库的方法十分相似,只有以下 3 点需要注意 :

ROP 客户端程序中 Cayenne 必须使用 Client端对象持久化 Java 类来执行远程数据库操作。

ROP 客户端程序中使用 cayenne-client-nodeps.jar作为 Cayenne 类库,除此之外还必须将 hessian-3.0.13.jar和 commons-collections,commons-lang以及 commons-logging几个类库加入类路径中。

ROP 客户端程序中需要使用 org.apache.cayenne.ObjectContext 来作为数据操作的上下文对象

清单 3 是一段 ROP 客户端程序使用 ROP 访问远程数据库的代码,其中的"http://localhost:8090/CayenneCWS/cayenne"为 CWS Web 服务运行的监听地址。更多的详细配置请参考本文 下载部分中的 CayenneCWSClient.zip eclipse 样例工程。

清单 3. 使用 ROP 访问远程数据库

org.apache.cayenne.remote.ClientConnection connection      = new HessianConnection("http://localhost:8090/CayenneCWS/cayenne"); org.apache.cayenne.DataChannel channel = new ClientChannel(connection); org.apache.cayenne.ObjectContext context = new CayenneContext(channel); org.apache.cayenne.query.SelectQuery objectSelectQuery       = new SelectQuery(com.cn.ibm.client.PersistentObject.class);   java.util.List objectDataList = context.performQuery(objectSelectQuery);   System.out.println(objectDataList.get(0));   context.commitChanges();

使用本文的样例程序

本文 下载部分中的两个样例 eclipse 工程 CayenneCWSClient 和 CayenneCWSServer 分别是演示 Cayenne ROP 功能的客户端和服务器端程序。请按照以下的步骤运行示例程序。

在 CayenneCWSServer 工程中有一个嵌入式的 Derby 数据库和一个 Jetty Servlet 服务器。将该项目导入 eclipse 开发环境后,运行类 CWSServerLauncher 即可启动 Servlet 服务器并在地址 http://{hostname}:8090/CayenneCWS/cayenne 上启动 CWS 服务。清单 4 是服务器端程序正常启动后的 console 信息。

当 CayenneCWSServer 中的 CWS 程序启动后,就可以通过 Cayenne ROP 客户端程序远程访问服务器端程序中内置的 Derby 数据库。当客户端程序与服务器端程序运行在同一台主机中时,客户端程序可以使用地址 http://localhost:8090/CayenneCWS/cayenne 或 http://127.0.0.1:8090/CayenneCWS/cayenne 访问 CWS。当客户端与服务器端程序运行在不同的主机中时,请将访问地址中的 hos

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号