站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题DB2 J2EE开发成本收益分析(三)

DB2 J2EE开发成本收益分析(三)

摘要: 本文在(一)(二)的基础上继续介绍需要访问跨多个数据源的servlet...
<table cellSpacing=0 cellPadding=5 width=570 bgColor=#fbe392 border=0> <tr> <td> <table cellSpacing=0 cellPadding=5 width=570 border=0> <tr> <td align=middle width=200 bgColor=#e1b004>天极IT资讯短信服务 电脑小技巧
<table cellSpacing=0 cellPadding=3 width="100%" bgColor=#fffcc0 border=0> function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } <form name=dn onsubmit="return check4()" action=http://www.my5757.com/tj/join.jsp target=_blank> <tr vAlign=center> <td>资费:包月5元
手机: <input style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 16px" size=11 name=mobile> <input type=image height=18 width=45 src="http://www.my5757.com/yesky/images/d34.gif" align=middle border=0 name=image2> </td></tr><input type=hidden value=yjq name=stype> </form></table></td> <td width=370 bgColor=#fbc403>介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费) </td></tr></table></td></tr></table>

  基本servlet设计

  我们使用标准JDBC调用来构建我们的servlet,通过DB2 Information Integrator和本地客户端接口(无DB2 Information Integrator)访问数据。只要有可能,我们就使用DataSource连接(连接池),这样能够更有效的利用系统资源。更进一步,我们通过执行JNDI在每个servlet的init方法中查找DataSource,设法维护编码效率。

  当我们通过DB2 Information Integrator访问远程数据的时候,我们的servlet发出针对别名或者跨多个别名的UNION ALL视图的查询。当直接访问远程数据的时候,我们的servlet发出针对每个数据源的查询。然后,我们必须确定如何整合返回的结果。

<iframe align=right marginWidth=0 marginHeight=0 src="http://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html" frameBorder=0 width=360 scrolling=no height=300></iframe>  我们可以在我们的servlet中手工完成这些整合工作,编写必要的代码根据需要组合、分类和分组这些数据。 然而,这将会有很大的工作量。 取而代之,我们选择利用一个本地DBMS表来帮助我们的工作,我们这么做的原因是这样的软件对于大多数WebSphere开发者也是有用的。 在从每个数据源检索到适当的数据以后,我们的servlet把结果插入一个本地DB2数据库的辅助表中,并且查询这些表以获得最后的结果。 当然,我们试着去过滤尽可能多的位于远程数据源的数据,来最小化网络通信量并进一步提高我们的本地servlet的效率。

  如果这听上去很含糊,那么让我们研究一个简单的例子。 想象我们需要构建一个servlet,不使用DB2 Information Integrator,报告一套零件的最低供应价格。 在与我们三个数据源中的每一个连接之后,我们的servlet将查询每一个数据源上PARTSUPP数据,来找到这些零件的最低供应价格。 (SQL语句可能看起来像Select MIN ( ps_supplycost) from PARTSUPP where ps_partkey IN ( list of ps_partkeys) group by ps_partkey。) servlet然后将把价格信息储存到一个本地临时表中,这个表两个列:ps_partkey和ps_supplycost。 最后,这个servlet可能发出一个针对本地表的查询,计算最小的ps_supplycost值,使用ps_partkey分组。
< BR>  紧接着,是实现我们直接使用直接数据访问的servlet的基本程序逻辑。 当然,程序比仅仅编写一个简单的查询要更复杂,我们要编写当我们使用DB2 Information Integrator进行数据访问的时候,我们要做什么。但是到底有多复杂呢?请接着向下读。

  现在,你可能对我们从我们的工作中了解到的东西感到好奇。 我们将在本文中总结我们的结论,然后在后续的文章中向你说明我们怎样得到这些结论。 但是归根到底还是那句话:我们发现,当我们使用DB2 Information Integrator的时候,构建servlet更为容易。

  为什么?因为使用DB2 Information Integrator (II):

   · 我们需要实现的数据访问逻辑要少些。大约少40%的代码量。

   · 我们不必为如何把我们的查询正确地分解为用于每一种目标数据源而担心。这节省了我们无数的时间和沉闷的调试工作。它还让我们更加容易获得我们想要的结果!

   · 我们不必协调我们的数据访问程序逻辑。 比如说,我们不必研究我们的数据是如何被分配以便作出适当的联接过程程序逻辑。 我们让DB2 II的优化程序为我们做这些工作。 通常它能做得很好,有时甚至比我们手写的程序更要优秀。




↑返回目录
前一篇: 在Java编程中如何使用线程
后一篇: 使用Java3D实现三维图像