还是返回结果集,自己拼成XML。最好写成一个接口,以便以后改算法方法,不影响主程序。缺点可能会慢一点,尤其是数据大时。

解决方案 »

  1.   

    只能是一步步的转换,不可能是一次就转换了,要不你就用别人写好的代码吧,反正在JDK里是没有这样的功能的。
      

  2.   

    解决啦!!
    源码给大家看看吧!共同进步!参考原文(jdk1.1 已经不适用):
    http://www.csdn.net/develop/author/columnAuthor/hochihyi/Article/SqlServer/001.htm我的:import java.sql.*;
    import java.io.*;
    public class TestStream {
        public static void main(String[] args) {
            long ltest = 0;
            Connection conn = null;
            ResultSet rs = null;
            Statement stm = null;
            try {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                conn = DriverManager
                        .getConnection("jdbc:microsoft:sqlserver://192.1.1.1;"
                                + "databaseName=MYDB;" + "User=sa;"
                                + "Password=sa");            stm = conn.createStatement();            rs = stm.executeQuery("Select * from testTable for xml auto");
                           
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new 
                        FileOutputStream("C:\\test\\streamTest.xml")));                          bw.write("<?xml version='1.0' encoding='GB2312' ?><root>");                          int c;                          // Display the SQL results.
                              while(rs.next())
                              {
                             Reader rd=rs.getCharacterStream(1);
                             if(rd==null){System.out.println("Reader is NUll;");}
                                                       while ((c = rd.read()) != -1)
                               {
                                 bw.write(c);
                                }
                              }                          bw.write("</root>");                          bw.close();
                        } catch (Exception e) {
                ltest = -100;
                System.out.println(e.getMessage());
            } finally {
                try {
                    rs.close();
                    stm.close();
                    conn.close();
                } catch (Exception e) {
                    System.out.println(e.getMessage());
                }
            }        System.out.println("ltest = " + ltest);    }
    }