PreparedStatement的setXXX方法不起作用

时间:2012-11-29 14:47:49

标签: 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.executeUpdate()); 

但是当我这样做时,executeUpdate返回0。如果我直接替换'?'使用这些值,然后executeUpdate可以正常使用。在我的情况下,它返回4意味着删除了4行。我无法理解问题所在。

1 个答案:

答案 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指出的那样,你是否在下次删除之前重新插入记录?