我验证我输入的任何内容的删除查询时遇到问题,即使该数据不在我的数据库中,它也会一直删除,并说成功。如果用户键入数据库中不存在的数据,我希望它出错。这是我的代码:
try{
System.out.println("Enter record you want to delete: ");
frail = scn.nextLine();
}catch(Exception ee){
System.out.println(ee.getMessage());
}
try{
stmt = conn.createStatement();
String sqlII = "delete from tbl_test where test_name = ?";
PreparedStatement psII = conn.prepareStatement(sqlII);
psII.setString(1, frail);
psII.executeUpdate();
int rowAffacted = psII.executeUpdate();
if (rowAffacted != 0) {
System.out.println("Deleted!");
}else{
System.out.println("No Affected Rows!");
}
}
catch(Exception eer){
System.out.println(eer.getMessage());
}
最佳答案
psII.executeUpdate();
返回一个整数。如果这些值为零,则不会删除任何行,因此您可以看到该用户不在数据库中,并且可以显示错误。如果用户是corect,则该值应大于零。
int noOfAffectedRows =psII.executeUpdate();
if (noOfAffectedRows = 0){
//show Error
}