【问题标题】:How to show if a entry is in a database?如何显示条目是否在数据库中?
【发布时间】:2019-11-03 04:48:42
【问题描述】:

我目前正在制作一个程序,我可以在其中删除数据库中的某些条目。我可以做到,但我想添加一个 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");
    }

【问题讨论】:

    标签: java sql database joptionpane


    【解决方案1】:

    引用executeUpdate()的javadoc:

    返回:

    对于 SQL 数据操作语言 (DML) 语句,可以是 (1) 行数,对于不返回任何内容的 SQL 语句,可以是 (2) 0

    所以:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多