如何将整数 [] 从 PostgreSQL 转换为 Java 中的整数 []?

How to convert a integer[] from PostgreSQL to a int[] in Java?

我需要从 PostgreSQL 中名为“jogos”的列中获取 integer[] 值,并将其存储在 Java 中的 int[] 属性中,但是 resultSet.getArray 告诉我此错误:

incompatible types: Array cannot be converted to int[]

而且没有 resultSet.getIntegerArray 或类似的东西。

我的函数:

public ResultSet LogarUsuario(Usuario usuario){
    String sql = "Select * FROM usuario WHERE email = '" + usuario.email + "' AND senha = '" + usuario.senha + "'";
    try {
        ResultSet rs = db.ExecutaBusca(sql); //search on DB and returns the result
        usuario.setId(rs.getInt("id"));
        usuario.setEmail(rs.getString("email"));
        usuario.setSenha(rs.getString("senha"));
        usuario.setJogos(rs.getArray("jogos")); //Line where is the problem
        return rs;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

我的 class 我将从数据库中实例化并存储这些值:

public class Usuario {
    public int id;
    public String email;
    public String senha;
    public int[] jogos;

}

那么,我怎样才能得到这个整数 [] 值并存储在一个 int[] 属性中?

我想还有更多代码不需要,但如果需要,我可以发送特定部分。

这是我的第一个问题,抱歉,如果有什么地方令人困惑。另外,抱歉,如果我的英语看起来很奇怪或错误,我还在学习中。

尝试这样的事情

 Array array = rs.getArray("jogos");
 usuario.setJogos((int[]) array.getArray());

getArray 方法可能会返回数组对象,因此您可能需要对变量使用 Integer 包装器以将值设置到其中。您在存储值的 class 中使用原始 int 数组。 试试这个,可能有效(未测试)

修改这个:

public int[] jogos;

收件人:

public Integer[] jogos;
public Integer[] getJogos() {
    return jogos;
}
public void setJogos(Integer[] jogos) {
    this.jogos = jogos;
}

修改这个:

usuario.setJogos(rs.getArray("jogos"));` //Line where is the problem

收件人:

Array jogosArray= rs.getArray("jogos");
Integer[] jogosIntArray = (Integer[]) jogosArray.getArray();
usuario.setJogos(jogosIntArray);