我有这样的事情。
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行。我无法理解问题所在。
答案 0 :(得分: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指出的那样,你是否在下次删除之前重新插入记录?