将sqlserver数据生成XML文件

zyjustin 2011-05-18

续上一篇将XML文件的数据写进SQLServer2008数据库的一实例,相信盆友们都知道怎么转换了,那么从数据库到XML文件呢?其实原理也很简单,就是用到了一些Java的输入输出流,想必大家已恍然大悟了吧,就是生成xml文件,然后写入数据就ok了,比上一篇容易多了哈!

直接看代码吧

package zrj.xml2;

import java.sql.*;
import java.io.*;

import javax.xml.parsers.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.*;
import org.w3c.dom.*;
import org.xml.sax.*;

public class SQLToXML {
public static void main(String args[])
{
try
{
File file=new File("sqltoxml.xml");
file.createNewFile();
FileWriter fw = new FileWriter(file);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=你的数据库","数据库登入名","登入密码");
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = st.executeQuery("select * from ICDM001");
fw.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"); //XML文件开头格式别忘了
fw.write("<Begin>\r\n");
while(rs.next())
{
fw.write("<ICDM001>\r\n");
fw.write("<ICDM0a00>");
String ICDM0a00 = rs.getString("ICDM0a00");
fw.write(ICDM0a00);
fw.write("</ICDM0a00>\r\n");
fw.write("<ICDM0a01>");
String ICDM0a01 = rs.getString("ICDM0a01");
fw.write(ICDM0a01);
fw.write("</ICDM0a01>\r\n");
fw.write("<ICDM0a02>");
String ICDM0a02= rs.getString("ICDM0a02");
fw.write(ICDM0a02);
fw.write("</ICDM0a02>\r\n");
fw.write("<ICDM0a03>");

String ICDM0a03;// = rs.getString("ICDM0a03");
ICDM0a03 = "NULL";

fw.write(ICDM0a03);
fw.write("</ICDM0a03>\r\n");
fw.write("<ICDM0a04>");
String ICDM0a04 = rs.getString("ICDM0a04");
fw.write(ICDM0a04);
fw.write("</ICDM0a04>\r\n");
fw.write("<ICDM0a05>");
String ICDM0a05 = rs.getString("ICDM0a05");
fw.write(ICDM0a05);
fw.write("</ICDM0a05>\r\n");
fw.write("<ICDM0a06>");
String ICDM0a06 = "NULL";// = rs.getString("ICDM0a06");
fw.write(ICDM0a06);
fw.write("</ICDM0a06>\r\n");
fw.write("</ICDM001>\r\n");
}
fw.write("</Begin>");
fw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

大家可能注意到了为什么每个write后都输入一个"\r\n"了,这是为了向XML文本里输入一个换行符,如果单单只有之加"\n",那么在XML文档里你会看到并不是一个换行符,而是一个黑点。

其生成的XML文件内容和上一篇是一样的,也贴出来看看吧

<?xml version="1.0" encoding="utf-8"?>
<Begin>
<ICDM001>
<ICDM0a00>001</ICDM0a00>
<ICDM0a01>A</ICDM0a01>
<ICDM0a02>PC-201011081048</ICDM0a02>
<ICDM0a03>NULL</ICDM0a03>
<ICDM0a04>2.0</ICDM0a04>
<ICDM0a05>1</ICDM0a05>
<ICDM0a06>NULL</ICDM0a06>
</ICDM001>
<ICDM001>
<ICDM0a00>001</ICDM0a00>
<ICDM0a01>B</ICDM0a01>
<ICDM0a02>Tcomputer</ICDM0a02>
<ICDM0a03>NULL</ICDM0a03>
<ICDM0a04>2.0</ICDM0a04>
<ICDM0a05>1</ICDM0a05>
<ICDM0a06>NULL</ICDM0a06>
</ICDM001>
</Begin>

相关推荐