java – ResultSet关闭后不允许操作

前端之家收集整理的这篇文章主要介绍了java – ResultSet关闭后不允许操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好吧,在过去的两天里,他一直试图解决这个问题.
Statement statement = con.createStatement();
                        String query = "SELECT * FROM sell";
                        ResultSet rs = query(query);
                        while (rs.next()){//<--- I get there operation error here

这是查询方法.

public static ResultSet query(String s) throws sqlException {
        try {
            if (s.toLowerCase().startsWith("select")) {
                if(stm == null) {
                    createConnection();
                }
                ResultSet rs = stm.executeQuery(s);
                return rs;
            } else {
                if(stm == null) {
                    createConnection();
                }
                stm.executeUpdate(s);
            }
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            con = null;
            stm = null;
        }
        return null;
    }

我该如何解决这个错误

解决方法

很难从你发布的代码中确定,但我怀疑ResultSet在while循环体内无意中被关闭(或stm被重用).这将在下一次迭代开始时触发异常.

此外,您需要确保应用程序中没有其他线程可能使用相同的DB连接或stm对象.

猜你在找的Java相关文章