1

私のコードは以下の通りです:

    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"); 
    }

「Error....serializing/」「deserializing the WebRowSet」というエラー メッセージが表示されます

このエラー メッセージの理由は、サイズ 1 の値が 0 でサイズ 2 が 17 であることです。テーブル「銀行」の行数は 17 なので、サイズ 2 の値は理解できますが、サイズ 1 が「0」になるのはなぜですか。

もう 1 つの質問は、「bank.xml」という名前のファイルを作成していないのに、「そのようなファイルは存在しません」というエラーが表示されないのはなぜですか?

4

1 に答える 1

0

を呼び出すint size1 = sender.size(); 前に呼び出しているsender.execute()ため、size1ゼロに等しくなります。

を呼び出すとFileWriter fw=new FileWriter("bank.xml");、ファイルがまだ存在しない場合はファイルが作成されます。

于 2013-10-20T02:26:55.397 に答える