当使用ResultSet .getArray()时,得到错误 "java.sql.SQLException: 当使用ResultSet .getArray()时,得到错误 "java.sql.SQLException: After end of result set"。

问题描述 投票:0回答:1

我试图使用select distinct查询从我的SQL数据库中获取一张表,然后将其放入一个数组中。然而,当我试图将数组保存为一个变量时,我得到了一个错误。

代码。

private ResultSet query(String query) throws SQLException {
    assert testConn();
    try {
        Statement statement = connection.createStatement();
        return statement.executeQuery(query);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    throw new SQLException();
}


private boolean testConn(){
    try {
        return connection.isValid(1);
    } catch (SQLException e){
        return false;
    }
}

@Test
void test_rs(){
    try {
        ResultSet rs = query("select distinct client_id from email_filtering_scores;");
        Array a = rs.getArray("client_id");
        String[] set = (String[])a.getArray();
        System.out.println(Arrays.deepToString(set));
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

我不知道为什么会出现SQLException 所以希望能得到帮助

先谢谢你了。

PS.我不知道什么是最佳实践。我不知道使用jdbc的最佳实践是什么,所以如果我的代码有什么那么恶劣的地方,我希望得到一些建议。

java mysql jdbc
1个回答
1
投票

只需检查结果集是否有值,使用 next()

    if (rs.next()) {
        Array a = rs.getArray("client_id");
        String[] set = (String[]) a.getArray();
        System.out.println(Arrays.deepToString(set));
    }
© www.soinside.com 2019 - 2024. All rights reserved.