使用dom4j将数据库逐行分别编译为相应格式的xml文件

来源:互联网 发布:富怡绣花软件 编辑:程序博客网 时间:2024/05/10 10:23
package org;

import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;  
 
//导出数据存入XML  
public class XmlDemo  
{  
static String sql = null;  
static ResultSet ret = null;  
@SuppressWarnings("rawtypes")  
public static void main(String args[]) throws Exception  
{  
//连接数据库  
Class.forName("com.mysql.jdbc.Driver");     
String url = "jdbc:mysql://localhost:3333/test";     
String user = "root";  
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
String sql = "select s.*,c.name as classpath from students s,class c where s.classid=c.classid ";     
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);  
ResultSetMetaData data = rs.getMetaData();  

ArrayList<HashMap<String, String>> al = new ArrayList<HashMap<String, String>>();  

while (rs.next()) {  
    HashMap<String, String> map = new HashMap<String, String>();  
    for (int i = 1; i <= data.getColumnCount(); i++) {// 数据库里从 1 开始  
        String c = data.getColumnName(i);  
        String v = rs.getString(c);  
        System.out.println(c + ":" + v + "\t");  
        map.put(c, v);  
    }  
    System.out.println("======================");  
    al.add(map);  
}  
//创建根节点  
Document document=DocumentHelper.createDocument();  
Element news=DocumentHelper.createElement("news");  
document.setRootElement(news);  
 
//String e1=al.get(0).get("name");
Element id=news.addElement("id");  
Element name=news.addElement("name");  
Element sex=news.addElement("sex");   
Element age=news.addElement("age");
Element classpath=news.addElement("classpath");
for(int i=0;i<al.size();i++)  
{   
//Map flag = (Map) al.get(i);   
id.setText(al.get(i).get("id").toString());  
name.setText(al.get(i).get("name").toString());  
sex.setText(al.get(i).get("sex").toString());  
age.setText(al.get(i).get("age").toString());
classpath.setText(al.get(i).get("classpath").toString());

//将树导出到文件中:两种输出方法  
OutputFormat format = new OutputFormat(" ", true);  
XMLWriter write=new XMLWriter(new FileOutputStream(new File("src/" + al.get(i).get("id") + ".xml")),format);
//OutputFormat opf = OutputFormat.createPrettyPrint();     
format.setEncoding("UTF-8");
format.setSuppressDeclaration(true); //去除版本信息及编码信息
format.setIndent(true);      // 设置是否缩进
format.setIndent("   ");     // 以空格方式实现缩进
format.setNewlines(true);    // 设置是否换行

write.write(document);
//news.detach();
write.close();
}  
 
 
}  
 

}

注:本论文部分代码为转载

1 0
原创粉丝点击