从数据库中数据导出为xml

package org.ufida.common;

import java.sql.*;

import java.io.*;

public class GetTable {

    public static void createXml(){

            try {

                //数据库连接这一块
/**
 * orcal 连接部分
 */
//                Class.forName("oracle.jdbc.driver.OracleDriver");
//
//                String url = "jdbc:oracle:thin:@localhost:1521:orcl";
//
//                String user = "test";
//
//                String pass = "test";
//
//                Connection conn = DriverManager.getConnection(url,user,pass);
/**
 * mysql 连接部分
 */

                Class.forName("com.mysql.jdbc.Driver");

                String url = "jdbc:mysql://localhost:3306/ufida"; // myDB为数据库名

                String user = "root";

                String password = "mysql";

                Connection conn = DriverManager.getConnection(url, user, password);

                Statement stmt = conn.createStatement();

                ResultSet rs = stmt.executeQuery("select * from pinspect");

 

                // 设置表格的名字

                String tableName = "db2xml";                //自己设

                tableName = tableName.toUpperCase();          //转换为大写

                //得到列的名字

                ResultSetMetaData rsmd = rs.getMetaData();

                int numColumns = rsmd.getColumnCount(); //取的是某个表总列数

                String[] columnNames = new String[numColumns];

                for (int i = 0; i < numColumns; i++) {

                    columnNames[i] = rsmd.getColumnName(i + 1); //这个数组装的是某个表中所有的列名

                }

                File ff = new File("c://" + tableName + ".xml");   //创建一个文件

                ff.createNewFile();                               //如果这个文件存在,则覆盖,如果没有,则创建

                FileWriter fw = new FileWriter(ff);               //创建一个文件写入对像

                fw.write("<?xml version=/"1.0/" encoding=/"UTF-8/"?>/n");  //写入头文件

                fw.write("<" + tableName + "s>");                  //总根节点

                while (rs.next()) {

                    fw.write("<" + tableName + ">");               //根节点

                    //每一行

                    for (int i = 0; i < numColumns; i++) {        //循环这个表中所有的列数

                        fw.write("<" + columnNames[i] + ">");     //从这个数组中取出列名字,根节点下的一个元素

                        fw.write(String.valueOf(rs.getObject(i + 1))); //根据rs取出每个对应列名下的数据

                        fw.write("</" + columnNames[i] + ">/n");    //根节点中的元素结束

                    }

                    fw.write("</" + tableName + ">");               //根节点结束

                }

                fw.write("</" + tableName + "s>");                  //总的根节点结束

                fw.close();                                        //写入对像关闭

                conn.close();                                       //连接关闭

                System.out.println("文件写入成功!!!!!!");

            } catch (IOException ex) {

                ex.printStackTrace();

            } catch (SQLException ex) {

                ex.printStackTrace();

            } catch (ClassNotFoundException ex) {

                ex.printStackTrace();

            }

      }

      public static void main(String[]args){

         createXml();

      }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值