如何将整数 [] 从 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);
我需要从 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);