dom|js|xml|資料|資料庫|轉換
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的傳統型應用程式
採用這種方法主要有兩個優點,首先,你可以以平台和語言獨立的方式來操作資料,其次,不需要編程你就可以實現對同樣資料的不同的視圖表示。