應用JDOM處理資料庫到XML轉換的JSP實現__資料庫

來源:互聯網
上載者:User

一、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的傳統型應用程式

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.