可能重复:
org.postgresql.util.PSQLException: The column name usuario was not found in this ResultSet
我为问题提出类似的错误而道歉。但是,这个是不同的。
因此usuarios_grupos的数据库表如下:
usuario | grupo
admin | 1
admin | 1
erion | 5
我的结果集方法如下:
public Object objectFactory(ResultSet rs) {
try {
UsuariosGrupos usergroup = new UsuariosGrupos(rs.getString("usuario"), rs.getString("grupo"));
return usergroup;
} catch (SQLException e) {
e.printStackTrace();
// retorno do método
return null;
}
}
错误出现在同一行:
ugList.add((UsuariosGrupos) objectFactory(rs));
在我的List方法中:
public List<UsuariosGrupos> select() {
//Colecao List recebe null
List<UsuariosGrupos> ugList = null;
try {
//Conecta no banco
conn.conectar();
//Prepara o preparedStatment
stmt = (PreparedStatement) conn.getPreparedStatement("select * from usuarios_grupos");
//Executa a instrucao SQL
ResultSet rs = stmt.executeQuery();
ugList = new ArrayList<UsuariosGrupos>();
//Enquanto ouver resultSet
while (rs.next()) {
ugList.add((UsuariosGrupos) objectFactory(rs));
}
System.out.println("################################UsuariosGrupos OK################################");
} catch (SQLException e) {
System.out.println("################################UsuariosGrupos Falhou################################");
e.printStackTrace();
} finally {
conn.desconectar();
}
return ugList;
}
这是我的UsuariosGrupos模型:
public class UsuariosGrupos {
private String usuario;
private String grupo;
public UsuariosGrupos() {
}
public UsuariosGrupos(String usuario, String grupo) {
this.usuario = usuario;
this.grupo = grupo;
}
public String getGrupo() {
return grupo;
}
public void setGrupo(String grupo) {
this.grupo = grupo;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
}
我不明白。我的结果集与我的数据库匹配,但我收到了错误。相同的字母外壳。有谁知道我做错了什么:/
usuario_grupos中的usuario和grupo是主要的复合键。你认为它可能与错误有关吗?谢谢!
答案 0 :(得分:1)
从您的previous post,您的表格看起来如下:
Usuarios | Grupos
admin 2
admin 3
然后您的ResultSet
应为rs.getString("Grupos");
答案 1 :(得分:0)
我会查询ResultSetMetaData以检查它认为它实际上可用的columnLabel。
另外:在进行查询时要明确。不要使用SELECT *
,而是指定显式列名(在这种情况下:如果确实没有列grupos
,则会更早收到错误。