我想从数据库中删除一条记录。代码运行正常,但即使存在特定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 );
}
答案 0 :(得分:2)
executeUpdate()
方法返回受影响的行数。如果没有删除任何行,则返回0
(自然地)。
因此...
int rows = preparedStatement.executeUpdate();
if(rows == 0)
...
else
...
您还应该正确使用PreparedStatement
,并将+ s
更改为占位符(令人惊讶的是,每个教程似乎滥用PreparedStatement
并教导不良习惯)。