WebRowSet的问题

时间:2013-10-20 02:18:09

标签: java jdbc

我的代码如下:

    int [] keyCols = {1};

    WebRowSet sender = new WebRowSetImpl();  
    sender.setUsername("root");
    sender.setPassword("root"); 
    sender.setUrl("jdbc:mysql://localhost:3306/jdbc");
    sender.setCommand("select * from bank");
    sender.setKeyColumns(keyCols);
    int size1 = sender.size();
    System.out.println(size1);
    sender.execute();

    FileWriter fw=new FileWriter("bank.xml");
    sender.writeXml(fw); 
    fw.flush(); 
    fw.close();

    WebRowSet receiver = new WebRowSetImpl(); 
    receiver.setUsername("root");
    receiver.setPassword("root"); 
    receiver.setUrl("jdbc:mysql://localhost:3306/jdbc");

    FileReader fr=new FileReader("bank.xml");
    receiver.readXml(fr); 
    int size2 = receiver.size();
    System.out.println(size2);
    if(size1 == size2) 
    { 
        System.out.print("WebRowSet serialized and "); 
        System.out.println("deserialized properly");
    }
    else 
    { 
        System.out.print("Error....serializing/");
        System.out.println("deserializing the WebRowSet"); 
    }

我正在收到错误消息 “错误....序列化/” “反序列化WebRowSet”

此错误消息的原因是size1的值为0,size2为17.我的表“bank”中的行数是17,所以我理解size2的值,但为什么我得到“0”对于size1。

另一个问题是我没有创建任何名为“bank.xml”的文件,那么为什么我没有收到任何错误,说“不存在这样的文件”?

1 个答案:

答案 0 :(得分:0)

您在之前拨打int size1 = sender.size(); 并致电sender.execute(),这就是size1等于零的原因。< / p>

当您致电FileWriter fw=new FileWriter("bank.xml");时,如果该文件尚未存在,则会创建该文件。