Java setXXX预处理报表的方法不起作用

Java setXXX预处理报表的方法不起作用,java,debugging,jdbc,Java,Debugging,Jdbc,我有这样的东西 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.executeUpdat

我有这样的东西

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行。我不明白问题出在哪里

这取决于您的列类型。。。若reg_number的列类型为number(任何数字数据类型),则只有您必须将其设置为integer,否则必须使用字符串进行设置

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所指出的,您是否在下次删除记录之前重新插入了记录?

什么是
reg\u number
sement
的列类型?您是否在测试之前重新插入了行?如果已删除它们一次并重试,则对于相同的参数,没有可删除的内容;)@beny23注册号是number,学期号是varchar2Yes,列类型是number,我在运行上述代码之前重新插入了。