从数据库中读取记录集到平面式XML文件

阅读:263次   时间:2007-10-11 00:00:00   字体:[ ]
使用JDOM操作XML系列文章二 从数据库中读取记录集到平面式XML文件(请下载数据库和源程序)
package jing.xml;

/**
* <p>Title: 从数据库中读取记录集到平面式XML文件</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 欧朝敬 13873195792
* @version 1.0
*/

//将数据库表输出为XML文档
import org.jdom.*;
import org.jdom.output.*;
import java.sql.*;
import java.io.*;
public class databasetoxml {
public databasetoxml() {
}
public static void main(String[] args) throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:jdom";
Connection conn = DriverManager.getConnection(url);
String sql="select * from company order by cid";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Document document = new Document(new Element("ROOT")); //创建文档ROOT元素
ResultSetMetaData rmd = rs.getMetaData();
int colcount = rmd.getColumnCount();
Element elemnetcol = new Element("COLTYPE");
for (int i = 1; i <= colcount; i++) { //列属性
elemnetcol.setAttribute(rmd.getColumnName(i),rmd.getColumnTypeName(i));
}
document.getRootElement().addContent(elemnetcol);
while (rs.next()) {
Element element0 = new Element("ROW");
for (int i = 1; i <= colcount; i++) {
element0.setAttribute(rmd.getColumnName(i),rs.getString(i));
}
document.getRootElement().addContent(element0);
}
rs.close();
stmt.close();
conn.close();
XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); //格式华输出,产生缩进和换行
Format format = outp.getFormat();
format.setEncoding("GB2312"); //设置语言
format.setExpandEmptyElements(true); //设置输出空元素为格式
outp.setFormat(format);
outp.output(document, new FileOutputStream("company.xml")); //输出XML文档
System.out.print("XML 文档生成完毕!");
}
}

产生的company.xml文件:
<?xml version="1.0" encoding="GB2312"?>
<ROOT>
<COLTYPE cid="INTEGER" cname="VARCHAR" descpt="VARCHAR" pid="INTEGER"></COLTYPE>
<ROW cid="1" cname="中南迈特" descpt="湖南省长沙市" pid="0"></ROW>
<ROW cid="2" cname="系统集成" descpt="各种系统集成" pid="1"></ROW>
<ROW cid="3" cname="软件开发" descpt="软件开发" pid="1"></ROW>
<ROW cid="6" cname="NetOA开发组" descpt="NetOA开发组" pid="3"></ROW>
<ROW cid="7" cname="王军" descpt="J2EE组王军" pid="5"></ROW>
<ROW cid="8" cname="湘红" descpt="J2EE组湘红" pid="5"></ROW>
<ROW cid="9" cname="Windows集成组" descpt="Windows系统集成" pid="2"></ROW>
<ROW cid="10" cname="Linux集成组" descpt="Linux相关系统集成" pid="2"></ROW>
</ROOT>

关于本站 - 广告服务 - 会员指南 - 联系方法
Copyright ©2003-2011 源码天空 All Rights Reserved