为了账号安全,请及时绑定邮箱和手机立即绑定

如何显示条目是否在数据库中?

如何显示条目是否在数据库中?

慕哥6287543 2024-01-25 15:56:05
我目前正在制作一个程序,可以在其中删除数据库中的某些条目。我可以做到这一点,但我想添加一个 JOptionPane 屏幕,以便它何时可以找到它或无法找到它(因此,当未找到名称时,不应找到它并显示一条消息说找不到它)。我尝试使用结果语句,但这似乎不起作用。如果有人知道如何做,请评论如何做!private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                              ArrayList<Cookbook  > recipes = new ArrayList();    String name = txtName.getText();    try {        String url = "jdbc:derby://localhost:1527/Cookbook";        Connection conn = DriverManager.getConnection(url);        String query = "DELETE from RECIPES WHERE NAME = ?";        PreparedStatement pst = conn.prepareStatement(query);        pst.setString(1, name);        pst.executeUpdate();        JOptionPane.showMessageDialog(null, name + " was sucessfully deleted");    } catch (Exception e) {        JOptionPane.showMessageDialog(null, "was not found or could not be deleted");    }
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

引用javadoc executeUpdate()

返回:

(1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0(不返回任何内容的 SQL 语句)

所以:

String url = "jdbc:derby://localhost:1527/Cookbook";

try (Connection conn = DriverManager.getConnection(url)) {

    String query = "DELETE from RECIPES WHERE NAME = ?";

    try (PreparedStatement pst = conn.prepareStatement(query)) {

        pst.setString(1, name);

        int rowCount = pst.executeUpdate();

        if (rowCount == 0) {

            JOptionPane.showMessageDialog(null, "'" + name + "' was not found");

        } else if (rowCount == 1) {

            JOptionPane.showMessageDialog(null, "'" + name + "' was successfully deleted");

        } else { // cannot happen if `NAME` has unique index in the database

            JOptionPane.showMessageDialog(null, rowCount + " recipes named '" + name + "' were deleted");

        }

    }

} catch (Exception e) {

    JOptionPane.showMessageDialog(null, "something went wrong: " + e);

}


查看完整回答
反对 回复 2024-01-25
  • 1 回答
  • 0 关注
  • 23 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信