一、
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
的桌面应用程序
采用这种方法主要有两个优点,首先,你可以以平台和语言独立的方式来操作数据,其次,不需要编程你就可以实现对同样数据的不同的视图表示。
转自:动态网站制作指南 | www.knowsky.com