明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

應(yīng)用JDOM處理數(shù)據(jù)庫到XML轉(zhuǎn)換的JSP完成

[摘要]3、代碼的編寫 下面開始我們的編寫JSP代碼轉(zhuǎn)換工作,代碼將通過調(diào)用JDOM動態(tài)生成XML結(jié)構(gòu),然后借助JDBC訪問SQL SERVER數(shù)據(jù)庫動態(tài)填充XML內(nèi)容。<%@page contentType="text/html;charset=GBK"%><HTM...

 

3、代碼的編寫

下面開始我們的編寫JSP代碼轉(zhuǎn)換工作,代碼將通過調(diào)用JDOM動態(tài)生成XML結(jié)構(gòu),然后借助JDBC訪問SQL SERVER數(shù)據(jù)庫動態(tài)填充XML內(nèi)容。

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

<HTML>

<HEAD>

<TITLE>用JDOM實現(xiàn)數(shù)據(jù)庫到XML的轉(zhuǎn)換</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的驅(qū)動程序

String user="lgz";

String password="lgz";

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

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

//創(chuàng)建一個statement

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

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

Document document=new Document(new Element("聯(lián)系人列表"));//創(chuàng)建文檔

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

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

 int i=0;

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

    Element element0=new Element("聯(lián)系人");  //創(chuàng)建元素 生成JDOM樹

    document.getRootElement().addContent(element0);

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

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

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

element0.addContent(element);

 }  

  }

 rs.close();                            //關(guān)閉結(jié)果集

 stmt.close();                               //關(guān)閉statement

conn.close();                           //關(guān)閉連接

XMLOutputter outp = new XMLOutputter();

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

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

%>

<a href="file:///d /data.xml">點(diǎn)擊打開產(chǎn)生的XML文檔 </a>

</BODY>

</HTML>

4、程序的運(yùn)行

通過瀏覽器的8080端口運(yùn)行該JSP,將產(chǎn)生預(yù)期的xml文件。

五、應(yīng)用分析

XML作為數(shù)據(jù)交換的標(biāo)準(zhǔn),得到了越來越廣泛的應(yīng)用。這篇文章闡明了數(shù)據(jù)庫到XML轉(zhuǎn)換的基本方法,從而使各異構(gòu)平臺以及各種格式的數(shù)據(jù)進(jìn)行數(shù)據(jù)交換成為可能。當(dāng)我們能夠把原始的數(shù)據(jù)轉(zhuǎn)化為XML格式化的形式,就能夠以豐富的HTML的格式表示出來。這里列舉兩個方面的應(yīng)用:

1、  XML應(yīng)用服務(wù)器:

XML應(yīng)用服務(wù)器實際上是支持XMLWeb應(yīng)用服務(wù)器,它們通常是模板驅(qū)動的,通過在一個劇本語言中嵌入使用SQL語句來提取數(shù)據(jù)并動態(tài)構(gòu)建XML文檔。

2 基于XML的桌面應(yīng)用

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

采用這種方法主要有兩個優(yōu)點(diǎn),首先,你可以以平臺和語言獨(dú)立的方式來操作數(shù)據(jù),其次,不需要編程你就可以實現(xiàn)對同樣數(shù)據(jù)的不同的視圖表示。