Aspire和Tomcat使用层次数据集

1/5/2008来源:Java教程人气:5606

  aspire是一个RAD工具,提供使用者以标准的xml/XSL、J2EE及关联式资料库技术快速地创建网站。Aspire可接受的资料来源包含存储程序、SQL语句、EJBs及java控件,并使用Apache 的xerces/xalan作为转换的处理器。
Aspire可使用于多种servlet引擎,例如Apache/JServ、Apache/Tomcat及WebSphere等。

  目前发展中的功能包含Crystal reports及Oracle reports等报表工具的整合界面。 Aspire优点如下:

  1.降低开发时间,开发者只需专注在商业逻辑及GUI的样子

  2. 降低开发技术门槛

  3. 更佳的GUI界面

  4.支援标准的技术

  5. 具有延展性及弹性

  一.何为层次数据集?为什么要用层次数据集?

  层次数据集并不是一个新的名词。他们已经以客户信息控制系统的事务数据、目录文件、Java对象、更接近于XML文件的格式存在了。早在2001年的XML杂志上,我就认为程序员可以从层次数据集的提取上得到好处,尽管他们的数据源具有很强的数据相关性(像:MySQL, Oracle, SQL Server, DB2等等之类的数据库)。.NET思想和数据集概念也很相似。尽管我所认为的层次数据集和传统的微软的数据集有很大的不同,层次数据集具有的丰富的细节描述极大增强了关系型数据的提取。

  本文重在讲述层次数据集的结构和与其相关的Java API。并不像XML杂志两年前所说的,你现在就可以用一系列的可执行代码来获取层次数据集的优势。当然我们可以在Java里编写一定代码来实现对各种各样的数据源的访问以及创建一个完整的层次数据集,本篇中我们就将给出一可执行的代码,你可以利用这些代码并结合一个简单的预定义的关系型适配器就可以创建一些层次数据集啦。这里的关系型适配器包括:文本阅读器,SQL 脚本, 存储过程等等。

  现在你可能会问了:“这个层次数据集究竟有什么好啊?”。当然层次数据集是不能和你的那些受到奖赏的同事得到的昂贵的Carbon带来的实惠相抗衡,在编程中层次数据集是非常有用的。对一个启动来说,一个层次数据集就可以满足整个Html页面上的所有的有价值的数据的需要。在MVC(Model-View-Controler)模型里,控制器的servlet可以提交一个层次数据集给jsp页面后,JSP页面就可以显示它而不需要任何的帮助。也可以说,通过控制器的servlet可直接将其转换为XML格式返回给请求者。从实用的角度来说,数据集可以转换成Excel格式的文件。从新潮的角度来说,层次数据集可以转换为支持XML数据的报表或者图表。

  本文主要焦点是服务于Java程序员的Java编程的API怎么运用层次数据集,实际上非Java程序员也可以通过有效地结合层次数据集和一个J2EE的服务(比如Tomcat)从关系型数据库或者别的数据库中得到XML、HTML、或者Excel格式文档。不要过于急躁,我们先来研究研究层次数据集的结构和这些数据集是如何被提取的。

进入讨论组讨论。

 

  二. 层次数据集的结构

  层次数据集可以表示为一个JavaAPI ,XML或者别的格式,而用XML来表示将会更加形象:


<AspireDataSet>
<!-- A set of key value pairs at the root level -->
<key1>val1</key1>
<key2>val2</key2>
<!-- A set of named loops -->
<loop name="loop">
</loop>
<loop name="loop2">
</loop>
</AspireDataSet>
  这是一系列的key/value对.一个给定的key/value可以用在N个独立的loops当中.其实每一个loop 就是一个数据表.loop可以说是table的同义词了.我没有用table这个术语是为了防止人们会不由自主的联想到关系型数据表.已经说过了loop其实上是很多行记录的集合,现在让我们在认真的看loop的结构:


<loop name="loopname">
<row>
<!-- a set of key value pairs -->
<key1>val1</key1>
<key2>val2</key2>
<!-- a set of named loops -->
<loop name="loopname1">
</loop>
<!-- a set of named loops -->
<loop name="loopname2">
</loop>
</row>
<row>
</row>
</loop>
  这里唯一一个不成对的结构就是row结构了.一个row结构可以是一些key/value对的集合.这里的row不仅包含了一些key/value对,并且还包括了多个独立的loop结构的递归集.这种扩展可以生成一定深度的树结构.

  三.Java当中的层次数据的结构

  当我把层次数据集以XML的形式展示的时候,你可能会把层次数据集理解为字面上的XML,因此你会先到DOM,接着你甚至会想这样岂不是会占用很大的JVM内存.不必慌张.层次数据集有自己的的Java API二不需要DOM来描述.下面就是一个层次数据集的Java API代码: