首页 > 解决方案 > 从 SQL 查询返回结果时 JDBC 中的异常 - 在开始或结果集之前

问题描述

尝试对 MySQL 数据库执行基本查询以检查数据库中是否存在用户。收到结果后,我得到了SQLException-"Before start of result set"

private static final String IS_EXISTS = "SELECT count(*) FROM `couponDB`.`companies` WHERE email=? AND password=?";

try {
            connection = ConnectionPool.getInstance().getConnection();
            PreparedStatement statement = connection.prepareStatement(IS_EXISTS);
            statement.setString(1, email);
            statement.setString(2, password);
            ResultSet resultSet = statement.executeQuery();
            return (resultSet.getInt(1) > 0);
        } catch (InterruptedException | SQLException err) {
            System.out.println(err.getMessage());
        } finally {
            ConnectionPool.getInstance().returnConnection(connection);
        }
        return false;

这工作正常,但我得到了错误Before start of result set

我知道你需要调用下一个结果resultSet.next() 所以我试过这段代码

private static final String IS_EXISTS = "SELECT * FROM `couponDB`.`companies` WHERE email=? AND password=?";

boolean isExist = false;

        try {
            connection = ConnectionPool.getInstance().getConnection();
            PreparedStatement statement = connection.prepareStatement(IS_EXISTS);
            statement.setString(1, email);
            statement.setString(2, password);
            ResultSet resultSet = statement.executeQuery();

           while ( resultSet.next()) {
               isExist = resultSet.getObject(1, Boolean.class);
           }
        } catch (InterruptedException | SQLException err) {
            System.out.println(err.getMessage());
        }
        return isExist;

仍然得到SQLExecption按摩Before start of result set

标签: javamysql

解决方案


推荐阅读