我试图使用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的最佳实践是什么,所以如果我的代码有什么那么恶劣的地方,我希望得到一些建议。
只需检查结果集是否有值,使用 next()
if (rs.next()) {
Array a = rs.getArray("client_id");
String[] set = (String[]) a.getArray();
System.out.println(Arrays.deepToString(set));
}