`
zzc_zj
  • 浏览: 14556 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA从数据库导出数据转换XML

    博客分类:
  • j2ee
阅读更多
//1。建立jdbc-odbc连接
//2。在定义变量中,写入XML文件路径(在eclipse的编写)
//3。建立数据库(以下DB为Users ),建表(以下表为users)
//4。代码如下
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class append {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自动生成方法存根
try{
    DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
    DocumentBuilder builder=factory.newDocumentBuilder();
    Document doc=builder.parse(args[0]);//记得定义你的XML路径
    doc.normalize();
    Element root = doc.getDocumentElement();
    accessDB(doc,root);
    if(doc != null)
        printNode(root);
    //////////////////////////
    TransformerFactory tf=TransformerFactory.newInstance();
    Transformer transformer=tf.newTransformer();
    DOMSource source=new DOMSource(doc);
    StreamResult result= new StreamResult(new File(args[0]));
    transformer.transform(source,result);
}catch(Exception e){
    e.printStackTrace();
}
    }

public static void createXML(Document doc,Element root,ResultSet rs){
   
    try{
        boolean flag=rs.next();
    while(flag){
        Element Users=doc.createElement("Users");
        Element userid=doc.createElement("userid");
        Text userid_text=doc.createTextNode(""+rs.getInt("userid"));
        userid.appendChild(userid_text);
        Element username =doc.createElement("username");
        Text username_text=doc.createTextNode(rs.getString("username"));
        username.appendChild(username_text);
        Element password =doc.createElement("password");
        Text password_text=doc.createTextNode(rs.getString("password"));
        password.appendChild(password_text);
       
        Users.appendChild(userid);
        Users.appendChild(username);
        Users.appendChild(password);
        root.appendChild(Users);
        flag=rs.next();
    }
    }
    catch(SQLException e){
        e.printStackTrace();
    }
}
public static void accessDB(Document doc , Element root){
    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn= DriverManager.getConnection("jdbc:odbc:yourBDconName"/*URL*/
                );
        Statement stmt=conn.createStatement();
        ResultSet rs=stmt.executeQuery("select * from users");
        createXML(doc,root,rs);
        rs.close();
        stmt.close();
        conn.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}
    public static void printNode(Element element){
       
        NodeList children=element.getChildNodes();
        NamedNodeMap attr=element.getAttributes();
        int r=children.getLength();
        if(attr!=null){
            System.out.print("<"+element.getNodeName());
            for(int j=0;j<attr.getLength();j++)
            {
                System.out.print(" "+attr.item(j).getNodeName());
            }
            System.out.print(">"+"\n");
        }
        else if(attr==null){
            System.out.print("<"+element.getNodeName()+">");
           
        }
        if(element.hasChildNodes()){
            for(int k=0;k<r;k++)
            {
                if(children.item(k).getNodeType()==Node.ELEMENT_NODE)
                printNode((Element)children.item(k));
                else if(children.item(k).getNodeType()==Node.TEXT_NODE)
                System.out.println(children.item(k).getNodeValue());
            }
        }
        System.out.print("</"+element.getNodeName()+">"+"\n");
    }
}
转自:http://hannoi2009.blog.163.com/blog/static/122828428200992111317727/
分享到:
评论

相关推荐

    java后台list集合转XML格式数据

    java后台从数据库读取 数据,封装到list集合,控制层转化为XML格式数据

    Java数据库编程宝典3

    15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4 小结 第16章 使用JDBC驱动的JavaMail API 16.1 使用电子邮件协议 16.1.1 MIME协议 16.1.2 ...

    Java DB CSV Export:将db数据导出为csv、json、xml或sql文件的Java工具-开源

    将 db 数据导出为 csv、json、xml 或 sql 文件的 Java 工具。 支持 Oracle DB、MySQL DB、PostgreSQL DB、Firebird DB、SQLite DB、Derby DB 和 HSQL DB。 此工具不包含所需的 db 驱动程序,但只需下载和配置一次...

    Java数据库编程宝典2

    15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4 小结 第16章 使用JDBC驱动的JavaMail API 16.1 使用电子邮件协议 16.1.1 MIME协议 16.1.2 ...

    Java数据库编程宝典1

    15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4 小结 第16章 使用JDBC驱动的JavaMail API 16.1 使用电子邮件协议 16.1.1 MIME协议 16.1.2 ...

    Java数据库编程宝典4

    15.2.3 使用XSL样式表转换XML 15.2.4 在JSP页面中使用XSL转换 15.3 使用具有XSL样式表的可更新ResultSet 15.4 小结 第16章 使用JDBC驱动的JavaMail API 16.1 使用电子邮件协议 16.1.1 MIME协议 16.1.2 ...

    java开源包5

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

    基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)

    2、新增按字段生成文件,支持把字段、JSON、XML数据转换成任何代码 3、新增大量新的自定义模板,如:DDL、随机数据、导出数据、数据模型、Ant Design Vue的CRUD模板等 4、新增更多用于自定义模板生的内置静态对象 5...

    数据库设计和数据库部署工具BDB 2007 Pro V2.3

    其数据库结构定义文件采用XML标准格式、 并且开放了外部读取数据库结构的源程序(C#/Delphi/JAVA)、 您可以通过使用BDB来简化软件开发和部署过程: 1、数据库设计、数据库部署:支持和数据库之间的正向和反向工程。 ...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    数据库设计和部署软件BDB 专业版V2.6

    BDB是贝恩软件... 开放的数据库物理结构文件格式(XML标准格式),并提供了外部调用数据库结构源程序 (包含C#/Delphi/JAVA三个版本)。 &lt;br&gt;11,支持多语言。 可根据需要增加新的语言包。

    数据库设计/自动安装工具BDB 2007 V2.3(For Oracle/MS SQLServer/Access/MySQL/SQLAnyWhere/Sybase)

    &lt;br&gt;此外、在BDB中提供了对开发语言的支持、 其数据库结构定义文件采用XML标准格式、 并且开放了外部读取数据库结构的源程序(C#/Delphi/JAVA)、 您可以通过使用BDB来简化软件开发和部署过程: &lt;br&gt;1...

    dbhelper:方便dbunit测试的实用工具,它将db转换为xml,反之亦然

    数据库提取器使用 DbUnit 编写 Junit 测试时,您可能希望将数据从数据库导出到 xml 文件,反之亦然。 该工具将帮助您完成这项工作。 它为您提供以下功能: 将数据库转换为 xml 文件(完整和部分) 将 xml 文件插入回...

    数据库设计工具BDB 2007 V1.8

    D、不同数据库平台数据类型自动转换功能。您只需采用比较熟悉的数据库进行定义、 系统会帮您自动进行转换。 E、自定义功能、可根据需要扩展数据库结构定义文件。 F、支持多语言(目前版本语言:中/英文)。并...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    BDB 2007数据库开发工具

    &lt;br&gt;此外、在BDB中提供了对开发语言的支持、 其数据库结构定义文件采用XML标准格式、 并且开放了外部读取数据库结构的源程序(C#/Delphi/JAVA)、 您可以通过使用BDB来简化软件开发和部署过程: &lt;br&gt;1...

    数据库设计工具BDB 2007 V2.0

    &lt;br&gt;此外、在BDB中提供了对开发语言的支持、 其数据库结构定义文件采用XML标准格式、 并且开放了外部读取数据库结构的源程序(C#/Delphi/JAVA)、您可以通过使用BDB来简化软件开发和部署过程: &lt;br&gt;1、...

    java开源包4

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

    java开源包11

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

    java开源包6

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

Global site tag (gtag.js) - Google Analytics