我的代码如下:

    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的值,但是为什么我得到的size1为“ 0”。

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

最佳答案

在调用int size1 = sender.size();之前先调用sender.execute(),因此这就是size1等于零的原因。

调用FileWriter fw=new FileWriter("bank.xml");时,如果文件尚不存在,则会创建该文件。

07-25 20:48