动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.利用JBuilder2005开发Web应用程序.
.JDO 2.0 的查询语言新特性.
.使用Java蓝牙无线通讯技术API概述.
.Java的一些关键特性.
.使用JRockit5.0运行BEAWorkshop/.
.用本地引用提高EJB访问效率之二.
.连接池用法.
.VJ6.0的使用方法(4)Application调.
.Hibernate初体验Cat之快速上手.
.Java Applet编程显示图像(1).
.IBM发布AUS: 消除Java程序脆弱的.
.一些面向对象的设计法则(4).
.Struts+Spring+Hibernate组装web.
.JDBC入门系列专题讲座.
.父类和子类转换(子类对象赋值给父.
.Java Bean 生成器.
.Java中存储区的分类.
.提高Java代码可重用性的三个措施.
.Informix J/Foundation.
.应用OSCache提升J2EE系统运行性能.

通过Aspire和Tomcat使用层次数据集

发表日期:2008-1-5 |



  ASPire是一个RAD工具,提供使用者以标准的XML/XSL、J2EE及关联式资料库技术快速地创建网站。Aspire可接受的资料来源包含存储程序、SQL语句、EJBs及Java控件,并使用Apache 的xerces/xalan作为转换的处理器。
  
  Aspire可使用于多种servlet引擎,例如Apache/JServ、Apache/Tomcat及WebSphere等。
  
  目前发展中的功能包含Crystal reports及Oracle reports等报表工具的整合界面。 Aspire优点如下:
  
  一.何为层次数据集?为什么要用层次数据集?
  层次数据集并不是一个新的名词。他们已经以客户信息控制系统的事务数据、目录文件、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代码:
  package com.ai.htmlgen;
  import com.ai.data.*;
  /**
   * Represents a Hierarchical Data Set.
   * An hds is a collection of rows.
   * You can step through the rows using ILoopForwardIterator
   * You can find out about the columns via IMetaData.
   * An hds is also a collection loops originated using the current row.
   */
  public interface ihds extends ILoopForwardIterator
  {
    /**
     * Returns the parent if available
     * Returns null if there is no parent
     */
    public ihds getParent() throws DataException;
    /**
     * For the current row return a set of
     * child loop names. ILoopForwardIteraor determines
     * what the current row is.   *
     * @see ILoopForwardIterator
     */
    public IIterator getChildNames() throws DataException;
    /**
     * Given a child name return the child Java object
     * represented by ihds again
     */
    public ihds getChild(String childName) throws DataException;
    /**
     * returns a column that is similar to SUM, AVG etc of a
     * set of rows that are children to this row.
     */
    public String getAggregatevalue(String keyname) throws DataException;
    /**
     * Returns the column names of this loop or table.
     * @see IMetaData
     */
    public IMetaData getMetaData() throws DataException;
    /**
     * Releases any resources that may be held by this loop of data
     * or table.
     */
    public void close() throws DataException;
  }
  
  简单的说来,上面的ihds接口就是一个层次数据集的接口.这个API使你可以递归的访问你的loop结构.这个接口里有一些遍历loop结构是需要的一些选项.它也能假定是前序遍历或者随机遍历.现在我来介绍的是这个API用到的两个附加的接口: ILoopForwardIterator和IMetaData:
  如何在IHDS里遍历行记录的接口: ILoopForwardIterator
  package com.ai.htmlgen;
  import com.ai.data.*;
  public interface ILoopForwardIterator
  {
    /**
    * getvalue from the current row matching the key
    */
    public String getvalue(final String key);
    public void moveToFirst() throws DataException;
    public void moveToNext() throws DataException;
    public boolean isAtTheEnd() throws DataException;
  }
  
  IMetaData: 用于读取列名的接口
  package com.ai.data;
  public interface IMetaData
  {
   public IIterator getIterator();
   public int    getColumnCount();
   public int    getIndex(final String attributeName)
   throws FieldNameNotFoundException;
  }
  
  你是怎么得到层次数据集的?你又可以怎么去用他?
  现在我们已经知道了层次数据集的结构了,你又怎么去利用它呢?像我以前所说的,这些再Aspire下是非常轻易的.具体的步骤如下:
  1. 学习Aspire的基础知识
  2. 为你的层次数据集创建定义文件
  3. 在Java 代码里调用你的定义和ihds接口
  
  下面具体介绍了这里面的细节:
  阅读Aspire JAR的基础的使用方法:
  Aspire是一个很小的jar文件,当你用像Tomcat这样的app服务器的时候,它是你的Java程序的一个补充.再Aspire的核心是一系列的配置文件,在这些文件里你可以声明你的根据Java类的数据访问机制和这些Java类的评论.Aspire将执行这些Java类并返回期待的结果对象.层次数据集是没有异常的.
  
  一个早期的标志性的对Aspire的评论参见:“ For Tomcat Developers, Aspire Comes in a JAR”.配置了初始化一个Aspire就像你定义数据库.调用SQL语句或者存储过程一样.
  为你的层次数据集创建定义文件:
  一个层次数据集的定义实例:
  ###################################
  # ihdsTest data definition: section1
  ###################################
  request.ihdsTest.className=com.ai.htmlgen.DBHashTableFormHandler1
  request.ihdsTest.loopNames=works
  #section2
  request.ihdsTest.works.class_request.className=com.ai.htmlgen.GenericTableHandler6
  r
上一篇:在 tomcat 5 中配置数据库连接池(DBCP) 人气:567
下一篇:TOMCAT源码分析(启动框架) 人气:630
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-4 LPLY CMS 网站管理系统 v5.0
2008-9-4 缤纷互动视频交友 v3.01.902
2008-9-4 ADN视频收藏专家 v3.0 bulid 080
2008-9-4 天空网络电影系统SKYUC v2.5.6 简
2008-9-4 Web Wiz Rich Text Editor(文本编
2008-9-4 幻影动漫网视频系统(Ppdong) v1.
2008-9-4 乐维电脑在线DIY配置系统
2008-9-4 老樊文章管理系统SQL版
2008-9-4 ASP.NET 2.53 缩略图水印组件源码
2008-8-23 Mini WinMount V0.4
2008-8-23 Vista优化大师3.11正式版
2008-8-23 Wine 1.13
2008-8-23 KlipFolio 5.0 Build 5899-80
2008-8-23 Windows Sysinternals Desktops
2008-8-23 OneTap Movies1.2破解版
2008-8-23 AnnotaterPDF阅读1.1.503 破解版
2008-8-23 SoundMeter分贝测量仪 v1.0汉化破
2008-8-23 iDrum音乐节拍1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵