没有从数据库中删除的消息对话框

时间:2017-11-15 20:13:45

标签: java mysql sql jdbc

enter image description here enter image description here 我想从数据库中删除一条记录。代码运行正常,但即使存在特定id的记录,该消息也会返回id not found in database。当数据库中找不到id时,请帮我改进我的代码以显示单独的消息。我已经附加了我的输出。因为你可以看到id = 19我在数据库中,但是当我删除id = 19时,该特定的id记录会从数据库中删除但是弹出的消息说数据库中找不到id。

try {
                                    String s = TUID.getText( );
                                    Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mysql", "root", "root" );
                                    Statement st = con.createStatement( );
                                    String r = "delete from mysql57.addressbook where iid = "+s;
                                    PreparedStatement preparedStatement = con.prepareStatement( r );
                                    preparedStatement.executeUpdate( );
                                    int rows = preparedStatement.executeUpdate();
                                 if(rows == 0)
                        {  JOptionPane.showMessageDialog( f, "ID NOT FOUND IN DATABASE");



                        }

                        else{
                            JOptionPane.showMessageDialog( f, "DELETED FROM DATABASE" );

                        }

                                    }


                                }
                                catch (Exception ex) {
                                    JOptionPane.showMessageDialog( f,ex );
                                }

1 个答案:

答案 0 :(得分:2)

executeUpdate()方法返回受影响的行数。如果没有删除任何行,则返回0(自然地)。

因此...

int rows = preparedStatement.executeUpdate();
if(rows == 0)
    ...
else
    ...

您还应该正确使用PreparedStatement,并将+ s更改为占位符(令人惊讶的是,每个教程似乎滥用PreparedStatement并教导不良习惯)。