org.postgresql.util.PSQLException:在此ResultSet中找不到列名grupo。 (不同的错误)

时间:2012-01-11 11:52:30

标签: java postgresql

  

可能重复:
  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是主要的复合键。你认为它可能与错误有关吗?谢谢!

2 个答案:

答案 0 :(得分:1)

从您的previous post,您的表格看起来如下:

Usuarios | Grupos

admin        2
admin        3

然后您的ResultSet应为rs.getString("Grupos");

答案 1 :(得分:0)

我会查询ResultSetMetaData以检查它认为它实际上可用的columnLabel。

另外:在进行查询时要明确。不要使用SELECT *,而是指定显式列名(在这种情况下:如果确实没有列grupos,则会更早收到错误。