微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLException: 查询不返回结果

如何解决SQLException: 查询不返回结果

我正在用 Java Swing 做一个项目,并使用 sqlite 作为我的数据库。 这是我为从数据库的 Room 表中删除记录而编写的函数

public void Delete() {
        String room_code = jTextField5.getText();
        String sql = "DELETE FROM Room WHERE room_code = '" + room_code + "'";
        try {
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
            if (rs.next()) {
                JOptionPane.showMessageDialog(null,"Room Deleted Successfully");
            }
            else {
                JOptionPane.showMessageDialog(null,"Invalid Room Code");
            }
        } 
        catch (Exception ex) {
            JOptionPane.showMessageDialog(null,ex);
        }
    }

但是,我遇到了以下异常:sqlException:查询没有返回结果。 我曾尝试按照其他答案中的建议使用 pst.executeUpdate(),但它说“int 无法转换为结果集”。

解决方法

DELETE 语句不返回结果集。您应该调用方法 executeUpdate 而不是方法 executeQuery

此外,您可以使用带有 PreparedStatement 的占位符。

你也应该使用 try-with-resources

考虑以下代码。

public void Delete() {
    String room_code = jTextField5.getText();
    String sql = "DELETE FROM Room WHERE room_code = ?";
    try (PreparedStatement ps = conn.prepareStatement(sql)) {
        ps.setString(room_code);
        int count = ps.executeUpdate();
        if (count > 0) {
            JOptionPane.showMessageDialog(null,"Room Deleted Successfully");
        }
        else {
            JOptionPane.showMessageDialog(null,"Invalid Room Code");
        }
    } 
    catch (Exception ex) {
        JOptionPane.showMessageDialog(null,ex);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。