我的代码如下:
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");
时,如果文件尚不存在,则会创建该文件。