0

私はこのようなものを手に入れました。

PreparedStatement statement = manager.getConnection().prepareStatement("delete from student_marks where reg_number = ? and semester = ?");      
statement.setInt(1,1);
statement.setString(2,"S1");    
System.out.println(statement.executeUpdate()); 

しかし、これを行うと、executeUpdate は 0 を返します。「?」を直接置き換えると 値を使用すると、executeUpdate が適切に機能します。私の場合、4 行が削除されたことを意味する 4 が返されました。問題がどこにあるのか理解できません。

4

1 に答える 1

0

列の型によって異なります... reg_number の列の型が数値 (任意の数値データ型) の場合は、整数のみを設定する必要があります。それ以外の場合は、文字列を使用して設定する必要があります。

PreparedStatement statement = manager.getConnection().prepareStatement("delete from student_marks where reg_number = ? and semester = ?");      
statement.setString(1,"1");
statement.setString(2,"S1");    
System.out.println(statement.executeUpdate()); 

jlordo が指摘したように、次回削除する前にレコードを再挿入しましたか?

于 2012-11-29T15:47:21.230 に答える