web中项目rs.next报错

判断rs不为空,但是rs.next却会报错,控制台显示的是rs.next和rs = pstmt.executeQuery()这两句报错,找了好久不知道错在哪里

img

img

img

img

使用结果集之前,你已经 关闭了结果集了,当然有问题了

img

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @author huazie
 * @version 2.0.0
 * @since 2.0.0
 */
public class DBUtil {

    private DBUtil() {
    }

    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // 打印异常
        }
    }

    /**
     * 获取数据库连接对象
     *
     * @param url  数据库URL
     * @param name 用户名
     * @param pwd  密码
     * @return 数据库连接对象
     */
    public static Connection getConnection(String url, String name, String pwd) throws SQLException {
        return DriverManager.getConnection(url, name, pwd);
    }

    /**
     * <p> 释放连接Connection </p>
     *
     * @param conn 数据库连接对象
     */
    private static void closeConnection(Connection conn) {
        try {
            if (null != conn) {
                conn.close();
            }
        } catch (SQLException e) {
            // 打印异常
        }
    }

    /**
     * <p> 释放statement </p>
     *
     * @param statement Statement对象
     */
    private static void closeStatement(Statement statement) {
        try {
            if (null != statement) {
                statement.close();
            }
        } catch (SQLException e) {
            // 打印异常
        }
    }

    /**
     * <p> 释放ResultSet结果集 </p>
     *
     * @param rs 结果集对象
     */
    private static void closeResultSet(ResultSet rs) {
        try {
            if (null != rs) {
                rs.close();
            }
        } catch (SQLException e) {
            // 打印异常
        }
    }

    /**
     * <p> 释放资源 </p>
     *
     * @param conn      数据库连接对象
     * @param statement 数据库状态对象
     * @param rs        数据库结果集对象
     */
    public static void close(Connection conn, Statement statement, ResultSet rs) {
        closeResultSet(rs);
        closeStatement(statement);
        closeConnection(conn);
    }

    /**
     * <p> 释放连接 </p>
     *
     * @param conn 数据库连接对象
     */
    public static void close(Connection conn) {
        closeConnection(conn);
    }

    /**
     * <p> 释放状态 </p>
     *
     * @param statement 数据库状态对象
     */
    public static void close(Statement statement) {
        closeStatement(statement);
    }

    /**
     * <p> 释放结果集 </p>
     *
     * @param rs 数据库结果集对象
     */
    public static void close(ResultSet rs) {
        closeResultSet(rs);
    }
}