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