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>