0734w-月下竹音

          0734是來自家鄉的聲音

          常用鏈接

          統計

          最新評論

          (轉)應用JDOM處理數據庫到XML轉換的JSP實現

          一、 JDOM 介紹

          我們知道 DOM 是用于與平臺和語言無關的方式表示 XML 文檔的官方 W3C 標準,利用 DOM SAX API 可以解析和處理 XML 文檔。這里我們介紹的 JDOM 是基于樹操作的純 JAVA API ,應該說它提供的是一套用于解析、創建、處理和實現 XML 的解決方案。這些 API DOM SAX API 提供的方法更為直觀,對于有 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 應用的優秀數據表示方法。 JDOM API 是純 JAVA API 對于 JAVA 開發人員來說更容易上手;

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

          org.jdom 是用于 JAVA API 操作的 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; ”。

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

          三、獲得與安裝 JDOM

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

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

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

          1 、數據庫、表的創建

          這里應用一個轉換顧客信息的例子——“顧客基本信息”。我們是把數據放置于 MICROSOFT SQL SERVER 2000 數據庫中,然后運用 JSP JDOM 技術動態生成 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 應用服務器實際上是支持 XML Web 應用服務器,它們通常是模板驅動的,通過在一個劇本語言中嵌入使用 SQL 語句來提取數據并動態構建 XML 文檔。

          2 基于 XML 的桌面應用

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

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

          posted on 2006-04-06 10:18 sparkwu 閱讀(518) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 和平区| 四会市| 沿河| 诸城市| 辽中县| 封开县| 于田县| 东安县| 琼海市| 镇赉县| 井陉县| 丰宁| 元江| 静宁县| 陇南市| 阿坝县| 攀枝花市| 潞城市| 元江| 宜州市| 新郑市| 扬中市| 高清| 增城市| 北安市| 神池县| 炎陵县| 赣榆县| 留坝县| 长泰县| 元阳县| 诏安县| 绿春县| 新竹县| 乌拉特中旗| 南宫市| 龙南县| 浦东新区| 宜昌市| 唐河县| 濮阳市|