快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
.DBCPDriverDataSourceFactory作为数据源工厂类后,Cayenne 会自动使用 Apache DBCP Configuration中指定的 DBCP 配置文件中的内容的来实现 DBCP 数据库连接池。

图 5. 配置 DBCP 作为数据库连接池

Cayenne 中的数据对象缓存机制

在 Cayenne 中内置有一套数据对象缓存机制,在该机制启动后 Cayenne 会将已经获得的查询结果缓存在系统中,从而可以避免不必要的数据库重复查询。对需要频繁重复执行的查询启动缓存支持,可以极大的提高数据库系统的性能。如表 1 所示 ,Cayenne 中共有 5 种数据缓存策略,每一种策略都具有不同的作用域或行为。

表 1. Cayenne 数据缓存策略

缓存策略 缓存作用域 缓存行为
QueryMetadata.NO_CACHE ( 默认策略 ) 不使用缓存机制
QueryMetadata.LOCAL_CACHE 在本地的 DataContext 中缓存数据 如果缓存中存在所需数据则直接使用该缓存数据,否则从数据库中读取该数据并将它放入缓存共后续查询使用
QueryMetadata.LOCAL_CACHE_REFRESH 在本地的 DataContext 中缓存数据 不使用缓存中的数据,总是从数据库中读取该数据并将它放入缓存共后续查询使用
QueryMetadata.SHARED_CACHE 在 DataDomain 中缓存数据 ( 同一 JVM 中的所有 context 可共享该缓存数据 ) 如果缓存中存在所需数据则直接使用该缓存数据,否则从数据库中读取该数据并将它放入缓存共后续查询使用
QueryMetadata.SHARED_CACHE_REFRESH 在 DataDomain 中缓存数据 ( 同一 JVM 中的所有 context 可共享该缓存数据 ) 不使用缓存中的数据,总是从数据库中读取该数据并将它放入缓存共后续查询使用

Cayenne 中可以使用 API 或 Cayenne Modeler 来启动缓存机制。使用 API 启动查询缓存只需要为 SelectQuery 指定一个名称 ( 作为缓存的唯一键值 ) 并设定缓存策略即可,清单 8 是一段通过 API 来使用缓存的示例程序。

清单 8. 通过 API 使用 Cache 机制

DataContext context = DataContext.createDataContext();   SelectQuery persistentObjectSelectQuery = new SelectQuery(PersistentObject.class);   // 为查询指定名称   persistentObjectSelectQuery.setName("MyQueryForCache");   // 设定查询缓存策略   persistentObjectSelectQuery.setCachePolicy(QueryMetadata.LOCAL_CACHE);   // 第一次查询,访问数据库并将查询结果放入缓存   List persistentObjectDataList = context.performQuery(persistentObjectSelectQuery);   // 直接使用缓存,不访问数据库   List persistentObjectDataList1 = context.performQuery(persistentObjectSelectQuery);   // 重新设定缓存策略   persistentObjectSelectQuery.setCachePolicy(QueryMetadata.LOCAL_CACHE_REFRESH);   // 不使用缓存数据,访问数据库并更新缓存   List persistentObjectDataList2 = context.performQuery(persistentObjectSelectQuery);

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

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

Cayenne 缓存也可以通过在 Cayenne Modeler 中创建 Query 并启动 Result Caching 来开启。如图 6 所示,在查询配置的 Result Cacheing选项中选择 DataContext Cache 或 Shared Cache 即可启动缓存支持。在程序

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