快速业务通道

跨多个数据源的J2EE开发: 细节探讨 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
+        "AND p_name LIKE CAST(? AS VARCHAR(55)) " +        "ORDER BY p_partkey " +        "FETCH FIRST 20 ROWS ONLY";

查询 2 看上去也和原始的查询几乎完全相同。我们只是为添加到我们的 UNION ALL 视 图的服务器属性列增加了连接谓词。正如在前面我们已经提到,我们在 Excel、Oracle 和 DB2 数据的昵称上创建 UNION ALL 视图,并且添加一个服务器属性列来指示数据的原始来 源。我们这样做是因为我们的数据分布方式模拟了由三个独立(并在以后合并)的公司维 护的订单记录。从而,我们知道可能有一些客户对不止一个原来的公司下订单,导致重复 的 CUSTOMER 数据,但是我们也知道在相同的日期中,一个特定的客户不会对两个不同的 公司下同样的订单。通过用视图定义维护一个服务器属性列,我们可以确保取回正确的信 息 - 即,我们可以消除对我们的业务情况没有意义的跨地点连接。

以下是查询 2 的实现

query[2] ="SELECT ps_partkey, s_name, s_suppkey, " +   "MIN(ps_supplycost) AS ps_supplycost " +   "FROM fed_partsupp, fed_supplier, fed_nation " +   "WHERE ps_partkey = ? " +   "AND ps_suppkey = s_suppkey " +   "AND s_nationkey = n_nationkey " +   "AND n_name = ? " +   "AND ps_server = s_server " +   "AND s_server = n_server " +   "GROUP BY ps_partkey, s_name, s_suppkey";

跨多个数据源的J2EE开发: 细节探讨(6)

时间:2011-04-11 IBM C. M. Saracco

查询 3、4 和 5 事实上和它们的原始版本没有什么不同。我们只是用参数标记替换了 搜索谓词值,而且对于查询 3,同样也是在视图中的服务器属性列上增加连接谓词:

query[3] = "SELECT c_custkey, c_name, SUM(o_totalprice) AS total_ordered, " +    "COUNT(*) AS num_orders " +    "FROM fed_customer, fed_orders " +      "WHERE o_custkey = c_custkey " +      "AND o_orderdate >= ? " +      "AND o_orderdate < ? " +      "AND c_server = o_server " +      "GROUP BY c_custkey, c_name " +      "ORDER BY total_ordered DESC " +      "FETCH FIRST 10 ROWS ONLY"; query[4] = "SELECT c_custkey, c_name, o_totalprice, n_name " +    "FROM db2_customer, ora_orders, db2_nation " +    "WHERE c_nationkey = n_nationkey " +    "AND c_custkey = o_custkey " +    "AND o_totalprice > ? " +    "AND n_name in (''JAPAN'', ''CHINA'', ''VIETNAM'', ''INDIA'')"; query[5] = "SELECT AVG(o_totalprice) AS avg_order, c_name, c_custkey, " +    "c_acctbal " +    "FROM db2_customer, fed_orders, db2_nation " +    "WHERE c_custkey = o_custkey " +    "AND c_nationkey = n_nationkey " +    "AND n_name = ? " +    "AND c_mktsegment = ? " +    "AND c_acctbal >>= ? " +    "AND c_acctbal <= ? " +    "GROUP BY c_custkey, c_name, c_acctbal " +    "ORDER BY avg_order DESC";

开发使用直接数据访问的查询

当我们直接使用每个数据源时,查询开发任务

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