新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Oracle, SQL Server与XML,XML在数据挖掘中的应用, PMML.
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML 与 数据库 』 → [转帖]应用JDOM处理数据库到XML转换的JSP实现 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 9668 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转帖]应用JDOM处理数据库到XML转换的JSP实现 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     lily0497 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:65
      门派:XML.ORG.CN
      注册:2006/4/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lily0497发送一个短消息 把lily0497加入好友 查看lily0497的个人资料 搜索lily0497在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lily0497的博客楼主
    发贴心情 [转帖]应用JDOM处理数据库到XML转换的JSP实现


    一、JDOM介绍


    我们知道DOM是用于与平台和语言无关的方式表示XML文档的官方W3C标准,利用DOM和SAXAPI可以解析和处理XML文档。这里我们介绍的JDOM是基于树操作的纯JAVAAPI,应该说它提供的是一套用于解析、创建、处理和实现XML的解决方案。这些API比DOM和SAXAPI提供的方法更为直观,对于有JAVA经验的程序员将会发现JDOM非常容易掌握。JDOM处理XML的方式比DOM容易的多,并且它的功能比使用SAX更加强大。


    JDOM的内部逻辑结构基本上与DOM的相同,比如具有Document、Element、Comment等文档节点类型,其中每一个JDOM文档必须有一个Document节点,并且为节点树的根节点。该根节点可以有子节点或者叶子节点如Comment、Text等。JDOM文档中的每一个节点类型均对应格式良好的XML文当中的没一个元素。这也就为我们利用JDOM转换数据库到XML文档提供了可操作的依据。


    JDOM的优点:


    由JDOM的文档声明我们将会很明显的看出应用JDOM的优势所在。JDOM文档声明如下“JDOM引用了20/80原则,即使用20的精力解决80的JAVA/XML问题”。


    ●  JDOM是用JAVA开发并为JAVA提供服务的,它沿用了JAVA代码的规范和类库;


    ●  在众多编程语言中,JAVA是使用XML的优秀平台,XML又是JAVA应用的优秀数据表示方法。JDOMAPI是纯JAVAAPI对于JAVA开发人员来说更容易上手;


    ●  JDOMAPI比DOM所提供的方法更为直观,同时简化了与XML的交互。比使用DOM更快。


    org.jdom是用于JAVAAPI操作的JDOM工具包。


    在org.jdom中,提供了Document、Element、Comment、DocType、Attribute、Text等存JAVA类,这些类均是访问和操作JDOM文档所必须的。我们可以利用这些类创建、遍历、修改JDOM文档。


    在org.jdom.output中,提供了DOMOutputter、XMLOutputter,用于处理JDOM树的DOM树形式、XML文档形式输出、打印等。


    二、环境配置


    在我的WINDOWS2000系统平台上采用TOMCAT4.1.18、JDK1.4.0_02作为开发和测试平台。


    通过“我的电脑”的“高级”属性添加如下两个环境设置CLASSPATH设置为:“.;c:\j2sdk1.4.0_02\lib\dt.jar;c:\j2sdk1.4.0_02\lib\tools.jar;”。PATH设置为“.;c:\j2sdk1.4.0_02\bin;”。


    SQLSERVERJDBC驱动:mssqlserver.jar放入TOMCAT的LIB目录下。


    三、获得与安装JDOM


    由于目前JDOM并没有包含在SUN的JDK中(我想不久的将来JDOM必然会成为SUNJDK的一部分),我们必须手工下载与设置JDOM的环境。


    在http://www.jdom.org可以下载JDOM的最新版本。这里下载的是JDOMbeta8。下载jdom-b8.zip后解压缩,JDOM的jar文件就是build目录下的文件jdom.jar,将上述文件拷贝到J2SDK1.4.0_02目录下的jre/lib/ext目录下。


    四、利用JDOM实现SQLSERVER数据库到XML的转换


    1、数据库、表的创建


    这里应用一个转换顾客信息的例子——“顾客基本信息”。我们是把数据放置于MICROSOFTSQLSERVER2000数据库中,然后运用JSP和JDOM技术动态生成XML实例文档。


    我们事先MicrosoftSQLServer数据库CUSTOM中创建了一个数据表--CUSTOM,其数据结构如下表所示:

    字段名

    注释

    类型

    是否为空


    Name

    姓名

    varchar(12)

    NOTNULL


    ID

    ID

    int

    NOTNULL


    Company

    公司

    varchar(30)

    NOTNULL


    Email

    TEL

    varchar(15)

    NOTNULL


    往数据库中输入以下几条记录:

    Name

    ID

    Company

    Email


    刘氏

    001

    公司1

    liu@yantai.com


    蒋氏

    002

    公司2

    jiang@yantai.net


    2、数据源设置


    数据源(ODBCSource)实际上就是定义数据的来源。数据源的设置方法是:[开始]-〉[设置]-〉[控制面板]-〉[管理工具]-〉[数据源(odbc)]-〉[SystemDSN]->[add]->[SQLServer],分别配置服务器名(CUSTOM所在服务器)、数据库名(CUSTOM)、数据源名称(此处定为DB_CUSTOM)、用户名(lgz)、用户口令(空),数据源就配置好了。



    3、代码的编写


    下面开始我们的编写JSP代码转换工作,代码将通过调用JDOM动态生成XML结构,然后借助JDBC访问SQLSERVER数据库动态填充XML内容。

    <@pagecontentType="text/html;charset=GBK">


    <HTML>


    <HEAD>


    <TITLE>用JDOM实现数据库到XML的转换</TITLE>


    </HEAD>


    <BODY>


    <@pageimport="org.jdom.*">


    <@pageimport="java.*">


    <


    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();  


    Stringurl="jdbc:microsoft:sqlserver://10.40.14.54:1433;DatabaseName=DB_CUSTOM";


    //载入jdbcodbc的驱动程序


    Stringuser="lgz";


    Stringpassword="lgz";


    Connectionconn=DriverManager.getConnection(url,user,password);  //连接数据库


    Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  


    //创建一个statement


    Stringsql="select*fromclient";  //定义查询的SQL语句


    ResultSetrs=stmt.executeQuery(sql);  //执行查询


    Documentdocument=newDocument(newElement("联系人列表"));//创建文档


    ResultSetMetaDatarsmd=rs.getMetaData(); //获取字段名


    intnumberOfColumns=rsmd.getColumnCount();//获取字段数


    inti=0;


    while(rs.next()){//将查询结果取出                       


       Elementelement0=newElement("联系人"); //创建元素生成JDOM树


       document.getRootElement().addContent(element0);


       for(i=1;i<=numberOfColumns;i )


    {  Stringdate=newString(rs.getString(i).getBytes("ISO-8859-1"),"gb2312");//代码转换


       Elementelement=newElement(rsmd.getColumnName(i)).setText(date);


    element0.addContent(element);


    }  


    }


    rs.close();                           //关闭结果集


    stmt.close();                              //关闭statement


    conn.close();                          //关闭连接


    XMLOutputteroutp=newXMLOutputter();


    outp.output(document,newFileOutputStream("d:\\data.xml"));//输出XML文档


    out.print("XML文档生成完毕!");


    >


    <ahref="file:///d|/data.xml">点击打开产生的XML文档</a>


    </BODY>


    </HTML>


    4、程序的运行


    通过浏览器的8080端口运行该JSP,将产生预期的xml文件。


    五、应用分析


    XML作为数据交换的标准,得到了越来越广泛的应用。这篇文章阐明了数据库到XML转换的基本方法,从而使各异构平台以及各种格式的数据进行数据交换成为可能。当我们能够把原始的数据转化为XML格式化的形式,就能够以丰富的HTML的格式表示出来。这里列举两个方面的应用:


    1、 XML应用服务器:


    XML应用服务器实际上是支持XML的Web应用服务器,它们通常是模板驱动的,通过在一个剧本语言中嵌入使用SQL语句来提取数据并动态构建XML文档。


    2、基于XML的桌面应用


    我们知道通过XSL可以把相同的数据以不同的数据形式提交给终端客户,一个XSL文件描述了数据的显示方式,你可以把许多XSL和同一个XML文档相连来提供不同的基于HTML的表示,这样事实上,我们就可以建立基于XML的桌面应用程序


    采用这种方法主要有两个优点,首先,你可以以平台和语言独立的方式来操作数据,其次,不需要编程你就可以实现对同样数据的不同的视图表示。


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/1 16:27:00
     
     niweiliang 帅哥哟,离线,有人找我吗?
      
      
      等级:大四(GRE考了1500分!)
      文章:242
      积分:1017
      门派:XML.ORG.CN
      注册:2007/1/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给niweiliang发送一个短消息 把niweiliang加入好友 查看niweiliang的个人资料 搜索niweiliang在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看niweiliang的博客2
    发贴心情 
    谢谢  辛苦了
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/3/14 10:21:00
     
     东方伯 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:13
      积分:106
      门派:XML.ORG.CN
      注册:2007/8/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给东方伯发送一个短消息 把东方伯加入好友 查看东方伯的个人资料 搜索东方伯在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看东方伯的博客3
    发贴心情 
    谢谢先,保存下来慢慢研究。。。。。。。。。

    ----------------------------------------------
    一张盗版的windows光盘上写着:“正版费用我们在清王朝时已经付过了,所以无须激活,尽请放心使用!”

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/8/2 21:58:00
     
     weiwang211 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:60
      门派:XML.ORG.CN
      注册:2008/1/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给weiwang211发送一个短消息 把weiwang211加入好友 查看weiwang211的个人资料 搜索weiwang211在『 XML 与 数据库 』的所有贴子 引用回复这个贴子 回复这个贴子 查看weiwang211的博客4
    发贴心情 
    thanks
    it is good for me
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/6/4 11:43:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML 与 数据库 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/8 20:41:02

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    3,226.563ms