我验证我输入的任何内容的删除查询时遇到问题,即使该数据不在我的数据库中,它也会一直删除,并说成功。如果用户键入数据库中不存在的数据,我希望它出错。这是我的代码:

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
}

08-06 16:25