<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-26  評論-13  文章-46  trackbacks-0

    一、JDOM介紹

    我們知道DOM是用于與平臺和語言無關的方式表示XML文檔的官方W3C標準,利用DOMSAX API可以解析和處理XML文檔。這里我們介紹的JDOM是基于樹操作的純JAVA API,應該說它提供的是一套用于解析、創建、處理和實現XML的解決方案。這些APIDOMSAX API提供的方法更為直觀,對于有JAVA經驗的程序員將會發現JDOM非常容易掌握。JDOM處理XML的方式比DOM容易的多,并且它的功能比使用SAX更加強大。

    JDOM的內部邏輯結構基本上與DOM的相同,比如具有DocumentElementComment等文檔節點類型,其中每一個JDOM文檔必須有一個Document節點,并且為節點樹的根節點。該根節點可以有子節點或者葉子節點如CommentText等。JDOM文檔中的每一個節點類型均對應格式良好的XML文當中的沒一個元素。這也就為我們利用JDOM轉換數據庫到XML文檔提供了可操作的依據。

    JDOM的優點:

    JDOM的文檔聲明我們將會很明顯的看出應用JDOM的優勢所在。JDOM文檔聲明如下“JDOM引用了20/80原則,即使用20%的精力解決80%JAVA/XML問題”。

       JDOM是用JAVA開發并為JAVA提供服務的,它沿用了JAVA代碼的規范和類庫;

       在眾多編程語言中,JAVA是使用XML的優秀平臺,XML又是JAVA應用的優秀數據表示方法。JDOM API是純JAVA API對于JAVA開發人員來說更容易上手;

       JDOM APIDOM所提供的方法更為直觀,同時簡化了與XML的交互。比使用DOM更快。

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

    org.jdom中,提供了DocumentElement Comment DocTypeAttributeText等存 JAVA 類,這些類均是訪問和操作JDOM文檔所必須的。我們可以利用這些類創建、遍歷、修改JDOM文檔。

    org.jdom.output中,提供了DOMOutputterXMLOutputter,用于處理JDOM樹的DOM樹形式、XML文檔形式輸出、打印等。

    二、環境配置

    在我的WINDOWS2000系統平臺上采用TOMCAT4.1.18JDK1.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;”。

    SQL SERVER JDBC驅動:mssqlserver.jar 放入TOMCATLIB目錄下。

    三、獲得與安裝JDOM

    由于目前JDOM并沒有包含在SUNJDK中(我想不久的將來JDOM必然會成為SUN JDK的一部分),我們必須手工下載與設置JDOM的環境。

    http://www.jdom.org可以下載JDOM的最新版本。這里下載的是JDOM beta8。下載jdom-b8.zip后解壓縮,JDOMjar文件就是build目錄下的文件jdom.jar,將上述文件拷貝到J2SDK1.4.0_02目錄下的jre/lib/ext目錄下。

    四、利用JDOM實現SQL SERVER 數據庫到XML的轉換

    1、數據庫、表的創建

    這里應用一個轉換顧客信息的例子——“顧客基本信息”。我們是把數據放置于MICROSOFT SQL SERVER 2000數據庫中,然后運用JSPJDOM技術動態生成XML實例文檔。

    我們事先Microsoft SQL Server數據庫CUSTOM中創建了一個數據表--CUSTOM,其數據結構如下表所示:

    字段名

    注釋

    類型

    是否為空

    Name

    姓名

    varchar(12)

    NOT NULL

    ID

    ID

    int

    NOT NULL

    Company

    公司

    varchar(30)

    NOT NULL

    Email

    TEL

    varchar(15)

    NOT NULL

    往數據庫中輸入以下幾條記錄:

    Name

    ID

    Company

    Email

    劉氏

    001

    公司1

    liu@yantai.com

    蔣氏

    002

    公司2

    jiang@yantai.net

    2、數據源設置

    數據源(ODBC Source)實際上就是定義數據的來源。數據源的設置方法是: [開始]-[設置]-[控制面板]-[管理工具]-[數據源(odbc)]-[System DSN]->[add]->[SQL Server],分別配置服務器名(CUSTOM所在服務器)、數據庫名(CUSTOM)、數據源名稱(此處定為DB_CUSTOM)、用戶名(lgz)、用戶口令(空),數據源就配置好了。

     

    3、代碼的編寫

    下面開始我們的編寫JSP代碼轉換工作,代碼將通過調用JDOM動態生成XML結構,然后借助JDBC訪問SQL SERVER數據庫動態填充XML內容。

    <%@page contentType="text/html;charset=GBK"%>

    <HTML>

    <HEAD>

    <TITLE>用JDOM實現數據庫到XML的轉換</TITLE>

    </HEAD>

    <BODY>

    <%@page import="org.jdom.*"%>

    <%@page import="java.*"%>

    <%

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

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

    //載入jdbc odbc的驅動程序

    String user="lgz";

    String password="lgz";

    Connection conn= DriverManager.getConnection(url,user,password);   //連接數據庫

    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  

    //創建一個statement

    String sql="select * from client";   //定義查詢的SQL語句

    ResultSet rs=stmt.executeQuery(sql);   //執行查詢

    Document document=new Document(new Element("聯系人列表"));//創建文檔

    ResultSetMetaData rsmd = rs.getMetaData();  //獲取字段名

    int numberOfColumns = rsmd.getColumnCount(); //獲取字段數

     int i=0;

     while(rs.next()){ //將查詢結果取出                       

        Element element0=new Element("聯系人");  //創建元素 生成JDOM樹

        document.getRootElement().addContent(element0);

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

     {   String date=new String(rs.getString(i).getBytes("ISO-8859-1"),"gb2312"); //代碼轉換

        Element element=new Element(rsmd.getColumnName(i)).setText(date);

    element0.addContent(element);

     }  

      }

     rs.close();                            //關閉結果集

     stmt.close();                               //關閉statement

    conn.close();                           //關閉連接

    XMLOutputter outp = new XMLOutputter();

    outp.output(document, new FileOutputStream("d:\\data.xml")); //輸出XML文檔

    out.print("XML 文檔生成完畢!");

    %>

    <a href="file:///d|/data.xml">點擊打開產生的XML文檔 </a>

    </BODY>

    </HTML>

    4、程序的運行

    通過瀏覽器的8080端口運行該JSP,將產生預期的xml文件。

    五、應用分析

    XML作為數據交換的標準,得到了越來越廣泛的應用。這篇文章闡明了數據庫到XML轉換的基本方法,從而使各異構平臺以及各種格式的數據進行數據交換成為可能。當我們能夠把原始的數據轉化為XML格式化的形式,就能夠以豐富的HTML的格式表示出來。這里列舉兩個方面的應用:

    1  XML應用服務器:

    XML應用服務器實際上是支持XMLWeb應用服務器,它們通常是模板驅動的,通過在一個劇本語言中嵌入使用SQL語句來提取數據并動態構建XML文檔。

    2 基于XML的桌面應用

    我們知道通過XSL可以把相同的數據以不同的數據形式提交給終端客戶,一個XSL文件描述了數據的顯示方式,你可以把許多XSL和同一個XML文檔相連來提供不同的基于HTML的表示,這樣事實上,我們就可以建立基于XML的桌面應用程序

    采用這種方法主要有兩個優點,首先,你可以以平臺和語言獨立的方式來操作數據,其次,不需要編程你就可以實現對同樣數據的不同的視圖表示。

    轉自:IT知識庫 www.aspdao.com
    posted on 2005-06-23 17:54 似水流年 閱讀(237) 評論(0)  編輯  收藏 所屬分類: JSP/Servlet
    主站蜘蛛池模板: 亚洲国产精品福利片在线观看| 亚洲精品无码久久毛片波多野吉衣| 黄色网址在线免费观看| 亚洲一区无码精品色| 99在线在线视频免费视频观看 | 亚洲中文字幕无码久久2017| 女人体1963午夜免费视频| 亚洲精品美女网站| 亚洲性久久久影院| 波多野结衣中文字幕免费视频 | 两个人看的www高清免费视频| 亚洲六月丁香六月婷婷色伊人| 亚洲成a人片7777| 国产一卡二卡≡卡四卡免费乱码| 精品视频在线免费观看| 亚洲精品中文字幕无码A片老| 亚洲AV电影院在线观看| 精品国产免费一区二区三区香蕉 | 国产v亚洲v天堂a无| 亚洲熟妇中文字幕五十中出| 丁香花在线观看免费观看图片| 亚洲人色大成年网站在线观看| 亚洲一区二区三区在线视频| 久久不见久久见中文字幕免费 | 国产精品1024永久免费视频| 一级做a爱过程免费视频高清| 亚洲AV成人噜噜无码网站| 国产亚洲成av片在线观看| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | h视频在线免费看| 亚洲天堂一区在线| 亚洲人成网77777亚洲色| 香蕉高清免费永久在线视频| 亚欧色视频在线观看免费| sihu国产精品永久免费| 亚洲变态另类一区二区三区| 亚洲成a人片7777| 少妇中文字幕乱码亚洲影视| 全免费a级毛片免费看不卡| 最近免费中文字幕mv电影| 国产色爽免费无码视频|