`
Goro
  • 浏览: 173429 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ResultSet转换成XML (转)

    博客分类:
  • Java
阅读更多
众所周知XML已经成不同应用程序之间数据交换的事实上的标准。在实际工作中,我们经常需要把JDBC返回的结果集(ResultSet)转化为XML表达形式,便于把数据传送到其他的应用程序。这里提供一个简单的例子,它可以把ResultSet转化为XML格式的文本,并存放在字符串(String)作为返回结果。
这个程序通用之处在于它与选用的数据库结构无关。就是说,如果数据库结构发生了变化,本文提供的程序也可以正确运行。如果你有相同的需要,希望本文能给您一点帮助和启发。


import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class ResultSetToXML {

/**
* @param ResultSet
*            rs输入的结果集
* @return String 返回XML串
* @exception SQLException
*/
public String generateXML(final ResultSet rs) throws SQLException {
   final StringBuffer buffer = new StringBuffer(1024 * 4);
   if (rs == null)
    return "";

   buffer.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>\n"); // XML的头部信息
   buffer.append("<ResultSet>\n");

   ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集的定义结构
   int colCount = rsmd.getColumnCount(); // 得到列的总数

   // 对放回的全部数据逐一处理
   for (int id = 1; rs.next(); id++) {
    // 格式为row id , col name, col context
    buffer.append("\t<row id=\"").append(id).append("\">\n");
    for (int i = 1; i <= colCount; i++) {
     String type = rsmd.getColumnTypeName(i); // 获取字段类型
     buffer.append("\t\t<col name=\"" + rsmd.getColumnName(i)
       + "\">");
     buffer.append(getValue(rs, i, type));
     buffer.append("</col>\n");
    }
    buffer.append("\t</row>\n");
   }
   buffer.append("</RowSet>");
   rs.close();
   return buffer.toString();
}

/**
* This method gets the value of the specified column
* 通用的读取结果集某一列的值并转化为String表达
* 
* @param ResultSet
*            rs 输入的纪录集
* @param int
*            colNum 第几列
* @param int
*            type 数据类型
*/
private String getValue(final ResultSet rs, int colNum, String type)
    throws SQLException {
   Object value = null;

   if (type.equals("nchar") || type.equals("nvarchar"))
    value = rs.getString(colNum);
   else
    value = rs.getObject(colNum);

   if (value != null)
    return value.toString().trim();
   return "null";
}

public static void main(String args[]) {
   ResultSet result;
   try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:MyDataSource", "sa", "123456");

    // 普通查询
    Statement stat = con.createStatement();
    result = stat.executeQuery("Select * from Orders");

    JDBCToXML obj = new JDBCToXML();
    String res = obj.generateXML(result);

    FileOutputStream fswriter = new FileOutputStream("result.xml", true);
    fswriter.write(res.getBytes());

    fswriter.close();
    con.close();
   } catch (Exception e) {
    System.out.println("Error" + e);
   }
}

}


分享到:
评论
1 楼 谁说我不是会员 2012-11-23  
我很想知道JDBCToXML是从哪里来的?是自己写的一个类吗?

相关推荐

    resultset2xml

    要将ResultSet转换为XML,我们需要遍历ResultSet,为每一行创建一个XML元素,并将列名作为元素标签,值作为元素内容。 以下是一种简单的实现方式: 1. 创建一个XML Document对象,这是XML文档的基础。 2. 使用...

    ResultSet转化为json,json转化为List

    本文将详细介绍如何在Java中将ResultSet转换为JSON,以及如何将JSON转换为List。 首先,我们来探讨如何将ResultSet转化为JSON。在Java中,通常使用第三方库如Jackson或Gson来实现JSON操作。这里以Jackson为例: 1....

    java编写将oracle表转成xml文件

    以上就是一个完整的Java程序,它连接到Oracle数据库,执行查询,将查询结果转换为XML,并将XML保存到文件。这只是一个基础示例,实际项目中可能需要考虑更多的细节,如错误处理、性能优化以及数据的分页处理等。希望...

    ResultSet to XML Converter-开源

    而"ResultSet to XML Converter"是一个开源项目,它的目标是帮助开发者将数据库查询结果,即ResultSet对象,转化为XML文件,以便于数据的保存或与其他系统进行数据交互。 ResultSet是Java数据库连接(JDBC)中的一...

    java xml拼接

    其中,`javax.xml.transform.Transformer`和`javax.xml.transform.dom.DOMSource`是常用的工具,它们允许我们将数据转化为DOM(Document Object Model)树,然后将其转换为XML字符串。另一种方法是使用`org.w3c.dom....

    asp.net提供XML与dataset互相转换

    在asp.net中提供了数据集DateSet与Xml转换的类 XmlDatasetConvert code: XmlDatasetConvert 该类提供了四种方法: 1、将xml对象内容字符串转换为DataSet 2、将xml文件转换为DataSet 3、将DataSet转换为...

    xml文件自动生成工具

    5. 将结果集转换为XML:遍历ResultSet,将每一行数据转换为XML元素,并嵌套在合适的结构中。 “xml文件自动生成工具”可能还涉及到数据映射的过程,即将数据库表结构映射到XML文档的结构。这可能包括选择哪些字段...

    java日期和查询数据库生成XML文件类

    - `javax.xml.transform`包:包含`Transformer`和`Source`等类,用于将数据转换成XML格式。 - `DOM(Document Object Model)`:将XML文档加载到内存中,以树形结构表示,可以方便地添加、删除、修改节点。 - `...

    Java实现XML导入不同数据库,从数据库导出数据到XML

    JDOM提供了SAXBuilder类,可以将XML文件转换为Document对象,从而访问其内容。例如: ```java File xmlFile = new File("data.xml"); SAXBuilder builder = new SAXBuilder(); Document document = builder.build...

    SQL2005与XML

    Java开发者可以使用JDBC(Java Database Connectivity)驱动连接到SQL Server 2005,通过PreparedStatement和ResultSet对象处理XML数据。Java也提供了DOM、SAX和StAX等API来处理XML文档,与SQL Server 2005中的XML...

    java解析xml根式数据

    - **XML 声明**:指示 XML 文档的版本和编码信息,如 `&lt;?xml version="1.0" encoding="UTF-8"?&gt;`。 - **元素**:文档中的基本构建单元,如 `&lt;book&gt;`。 - **属性**:为元素提供附加信息,如 `...

    XML和数据库实验

    在本实验中,XML与数据库的交互主要体现在将数据库中的数据转换为XML格式,以便于数据的传输、存储或者进一步处理。实验的目的在于让参与者熟悉XML的基本概念,理解关系数据库管理系统(RDBMS)与XML之间的映射原理...

    XML读取数据库信息

    然后,为了将这些数据转换为XML,我们可以使用Java的DOM(Document Object Model)或者SAX(Simple API for XML)解析器。DOM解析器将整个XML文档加载到内存中,方便处理;而SAX则采用事件驱动模型,适用于处理大型...

    mybatis 对clob类型转换

    在数据库中,CLOB(Character Large Object)类型用于存储大文本数据,如长篇文章或XML文档。在使用MyBatis框架进行数据操作时,我们可能会遇到CLOB类型数据的读写问题,尤其是在转换和插入数据库时。本篇将详细探讨...

    Java实现XML解析【JDom】

    它通过DOM(Document Object Model)模型来操作XML,DOM将XML文档转换为一棵由节点构成的树,每个元素、属性、文本等都是一个节点。JDom提供了简洁的API,使得我们能够方便地创建、查找、修改这些节点。 要使用JDom...

    JAVA 生成 XML文件

    2. **结合数据库操作**:当需要从数据库中提取数据生成XML时,可以使用JDBC连接数据库,查询数据并将其转换为XML。假设我们有一个名为`Employee`的表,包含`id`, `name`, 和 `age`字段,可以这样实现: ```java ...

    从xml文档中读取和写入数据库的例题

    2. 输出到XML:将查询结果转换为XML格式。Java中可以使用`TransformerFactory`和`Transformer`类实现: ```java ResultSet rs = stmt.executeQuery("SELECT * FROM books"); TransformerFactory transformerFactory...

    数据库中的数据转储为XML格式的数据

    数据库中的数据转换为XML格式是一项常见的任务,尤其在数据交换、数据存储或数据解析等场景中。XML(可扩展标记语言)是一种结构化数据表示语言,具有自我描述性且易于机器解析,使得它成为跨平台数据传输的理想选择...

Global site tag (gtag.js) - Google Analytics