`

用jdom将DB中多个表的内容写到一个XML中

阅读更多
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class DBToXML {
	
	public void BuildXMLDoc()throws Exception{
		String tables[]={"t_information","t_user"};
		 int j;
		String colval;
		//创建根节点以表的名字为根节点
		 Element rootElement = new Element("dbData");
		 //根节点添加到文档中
	Document myDocument = new Document(rootElement);
	 for(int i=0;i<tables.length;i++){
						ResultSet resultset= selectTable(tables[i]);
						ResultSetMetaData rsmd=resultset.getMetaData();
			//获得表中所包含的列数
	int numCols = rsmd.getColumnCount();
						//System.out.println("db_to_xml:numCols:" + numCols);
		 //每个表都清零一次以便统计每个表有多少个元素
			j=0;
	while (resultset.next()) {
							//以表名为元素名,并且为每个元素设置number编号
								Element elements=new Element(tables[i]);
								elements.setAttribute("number",""+j++);
								//遍历每一列,并取得元素值
								for (int k=1; k <= numCols; k++) {
									colval=resultset.getString(k);
									//如果没有元素设置为空字符串
									if(resultset.wasNull()){
										colval=" ";
					}
//将表中每一个字段的名和值添加到元素中
elements.addContent(new Element(rsmd.getColumnName(k)).setText("\'"+colval+"\'"));
							         }
							rootElement.addContent(elements);
				}
			 }
 //将doc写到指定的xml中
XMLOutputter XMLOut=new XMLOutputter(Format.getPrettyFormat());
XMLOut.output(myDocument, new FileOutputStream("data.xml"));
		 }//BuildXMLDoc
	
public static Connection getConn()throws Exception{
	Class.forName("net.sourceforge.jtds.jdbc.Driver");
 String connStr="jdbc:jtds:sqlserver://localhost:1433/webNews";
Connection conn=DriverManager.getConnection(connStr,"sa","");
			 return conn;
		 }

public static ResultSet selectTable(String TableName)throws Exception{
	Statement stat=DBToXML.getConn().createStatement();
		String sql="select *from " +TableName;
		ResultSet rs=stat.executeQuery(sql);
		return rs;
		}
	
public static void main(String[] args) {
		
		try {
			DBToXML dbToXML=new DBToXML();
			dbToXML.BuildXMLDoc();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

生成的XML为

<?xml version="1.0" encoding="UTF-8"?>
<dbData>
  <t_information number="0">
    <id>'1'</id>
    <content>'ed'</content>
    <createDate>' '</createDate>
    <source>'ff'</source>
    <title>'fff'</title>
    <url>' '</url>
    <equipment_id>null</equipment_id>
    <type_id>null</type_id>
  </t_information>
  <t_information number="1">
    <id>'2'</id>
    <content>'cc'</content>
    <createDate>' '</createDate>
    <source>'cc'</source>
    <title>' '</title>
    <url>' '</url>
    <equipment_id>null</equipment_id>
    <type_id>null</type_id>
  </t_information>
  <t_user number="0">
    <id>'1'</id>
    <birthday>' '</birthday>
    <enabled>'1'</enabled>
    <gender>' '</gender>
    <password>'33'</password>
    <realName>'dd'</realName>
    <school>'dd'</school>
    <specialty>' '</specialty>
    <username>' '</username>
  </t_user>
  <t_user number="1">
    <id>'2'</id>
    <birthday>' '</birthday>
    <enabled>'1'</enabled>
    <gender>' '</gender>
    <password>'dfgd'</password>
    <realName>'dg'</realName>
    <school>'dfg'</school>
    <specialty>'dfd'</specialty>
    <username>'dfg'</username>
  </t_user>
  <t_user number="2">
    <id>'3'</id>
    <birthday>' '</birthday>
    <enabled>'0'</enabled>
    <gender>' '</gender>
    <password>'45'</password>
    <realName>'reet'</realName>
    <school>'ert'</school>
    <specialty>'ert'</specialty>
    <username>'ert'</username>
  </t_user>
  <t_user number="3">
    <id>'5'</id>
    <birthday>'1900-01-01 00:00:00.0'</birthday>
    <enabled>'0'</enabled>
    <gender>''</gender>
    <password>'452'</password>
    <realName>'reets'</realName>
    <school>'erts'</school>
    <specialty>'erts'</specialty>
    <username>'erts'</username>
  </t_user>
  <t_user number="4">
    <id>'6'</id>
    <birthday>'1900-01-01 00:00:00.0'</birthday>
    <enabled>'2'</enabled>
    <gender>'2'</gender>
    <password>'4542'</password>
    <realName>'re2ets'</realName>
    <school>'er2ts'</school>
    <specialty>'e2rts'</specialty>
    <username>'ert2s'</username>
  </t_user>
  <t_user number="5">
    <id>'7'</id>
    <birthday>'1900-01-01 00:00:00.0'</birthday>
    <enabled>'42'</enabled>
    <gender>'22'</gender>
    <password>'4542'</password>
    <realName>'re22ets'</realName>
    <school>'er2t2s'</school>
    <specialty>'e2r3ts'</specialty>
    <username>'ert22s'</username>
  </t_user>
</dbData>

 

分享到:
评论

相关推荐

    jdom\DB-xml-out.通过jdom把数据库中的数据读取到XML文件中

    `jdom\DB-xml-out`项目提供了一种解决方案,利用Java的JDOM库将数据库中的数据转换并保存到XML文件中。JDOM是Java中一个用于处理XML的API,它提供了高效、灵活且方便的方式来构建和操作XML文档。 JDOM库的核心概念...

    XML文件读写

    每个XML文档都有一个根元素,根元素包含其他元素,形成树状结构。元素通过标签定义,如 `&lt;book&gt;` 和 `&lt;/book&gt;`,属性则用于附加额外信息,如 `&lt;book title="XML指南"&gt;`。 XML文件读写的操作通常涉及以下几个步骤: ...

    java解释Xml,从数据库中读出来,解释Xml

    - **DOM(Document Object Model)**:DOM是基于树形结构的API,它将整个XML文档加载到内存中形成一个节点树。通过遍历这个树,可以访问和修改XML的任何部分。DOM适合小型XML文档,因为大型文档可能会占用大量内存...

    java与xml 学习笔记整理

    `Node`对象表示XML文档中的一个结构单元,可以是元素、属性、文本等。`Node`有一系列的方法,如`getFirstChild()`用于获取第一个子节点,`getNodeValue()`获取当前节点的文本内容。 在示例代码中,`doc....

    xml四种解析方法及源码

    - **工作原理**:DOM(Document Object Model)将整个XML文档加载到内存中,构建一个树形结构,可以方便地遍历和修改XML结构。 - **优势**:操作方便,能直接访问任何节点。 - **劣势**:占用内存较大,不适合...

    Java操作XML几种方法.pdf

    DOM解析方式是将整个XML文档加载到内存中,构建一个完整的树形结构,从而可以方便地进行随机访问。这种方法适用于小型或中型XML文件,因为大型XML文件可能会消耗大量内存。 DOM解析的基本步骤如下: - 创建`...

    解析XML文档

    DOM解析将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点遍历和修改XML数据。这种方法的优点是可以任意时刻访问和修改XML文档的任何部分,但缺点是消耗资源较大,尤其是处理大型XML文件时,可能...

    XML开发与Java技术(E文)

    - DOM(Document Object Model):DOM将整个XML文档加载到内存中形成一棵树形结构,可以遍历节点进行操作。优点是方便,缺点是消耗资源。 - SAX(Simple API for XML):SAX是基于事件驱动的解析器,逐行读取XML...

    java文集

    Java正则表达式 批量上传--采集 (多个文件夹) The Agile Way hibernate mapping文件中的标记详解:关系标记 ANT 安装使用及build.xml文档模板 inverse和cascade在关联更新中的作用 hibernate ...

    hashsearch-program:这个程序是在我在日本工作期间用 Java 实现的。 通过对Hash-Search的研究实现。 本项目使用了 3 个 Oracle 数据库

    另一方面,jdom-2.0.5.jar是一个Java文档对象模型库,它提供了一种高效、方便的方式来处理XML数据。在HashSearch项目中,可能使用了XML来存储配置信息或数据交换,JDOM库则帮助解析和构建XML文档,增强了程序的数据...

    JAVA开源软件分类

    本文将对常见的Java开源软件进行分类介绍,并从多个维度进行划分和管理。 #### 1. Java框架(Frameworks) Java框架是Java开发的核心部分,它们提供了一系列的基础架构支持,使得开发者能够更加高效地构建应用系统...

Global site tag (gtag.js) - Google Analytics