我是一个新手。java如何实现把数据库里的数据写入到xml? 请高手们指点。我在网上找了一些资料,好像有 dom, jdom, sax, dom4j等技术支持解析xml的。有人说dom4j好用。我自己也试着写了一段代码。往xml里写入到20000多一点的数据,java.lang.OutOfMemoryError 错误。 这是我把数据导入到xml文件的代码。 public String writeXML(String fileName, ResultSet rs) {
int count = 0;
String str = "";
try{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("d:\\pcis\\"+fileName+".xml"));
Element rootElement = document.getRootElement();
Writer out = new FileWriter("d:\\pcis\\"+fileName+".xml");            
OutputFormat format = OutputFormat.createPrettyPrint(); 
              
format.setEncoding("GB2312");
//创建写出对象            
XMLWriter writer = new XMLWriter(out,format);
int ii = 1;
while (rs.next()) {
System.out.println(ii);
                // Dom4jXMLHelp().maxXml(fileName) 判断文件大小
if(!new Dom4jXMLHelp().maxXml(fileName) || ii > 20000) {
str = "manle";   
break;
}
Element elements = rootElement.addElement(rootElement.getName()+"_"+ii);
ResultSetMetaData rsmd =  rs.getMetaData();
count = rsmd.getColumnCount();
for (int i = 1; i <= count; i++){
   
Element element = elements.addElement(rsmd.getColumnName(i));
element.addAttribute("DataType", rsmd.getColumnTypeName(i));
element.setText(rs.getObject(i) == null ? "" : rs.getObject(i).toString());
}
ii++;

}
String strDocument = document.toString();
System.out.println(strDocument);
writer.write(document);                   
writer.close();   
str = "OK";
System.out.println(rs.isAfterLast()+":"+rs.next());
   } catch(Exception e) {
e.printStackTrace();
return "shibai";
}
    return str;
}
还有一点疑问就是执行 writer.write(document); 代码的时候 花费  4,5分钟。数据库表里的数据量不算少, 基本上是几百万条,最多的3000万+。这么算下来,一张表就要大概一周的时间。看了好多的帖子,都不知道怎么办了高手们请帮帮忙。