【发布时间】:2021-09-20 04:46:12
【问题描述】:
我想删除数据库中的一行,它可以工作,但问题是:
-
如果我输入数据库中存在的值,它将被删除,并收到一条消息“您的预订已成功取消”
-
但如果我输入 DB 中不存在的值,我也会收到相同的消息。如果条件不起作用,为什么?
String sql = "delete from vaccines.patients where idNum = ?"; String res = "Your Booking is successfully canceled"; PreparedStatement state; try { state = con.prepareStatement(sql); state.setString(1, member.getIdNum()); if (member.getIdNum().equals(null)) { res = "Enter id"; } state.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); res="Your Booking is not successfully canceled"; }
【问题讨论】:
-
无论是否成功更新任何行,delete 语句都会成功。在 delete 语句上有一个不匹配的 where 子句并不是错误。查看 PreparedStatement.executeUpdate 的 Javadoc 并注意其返回值。