数据库导出数据到xml

package dataxml;

import java.sql.*;

import java.io.*;

public class GetTable {

public static void createXml(){

try {

//数据库连接这一块

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);

Statement stmt = conn.createStatement();

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



// 设置表格的名字

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

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("d:\\" + 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();

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值