2012-01-11 146 views
0

可能重複:
org.postgresql.util.PSQLException: The column name usuario was not found in this ResultSetorg.postgresql.util.PSQLException:在此ResultSet中找不到列名稱grupo。 (不同的錯誤)

我對提出的問題與類似的錯誤道歉。但是,這個是不同的。

所以對於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)); 

在我的列表方法中:

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和我的usuarios_grupos grupo是一個主要的複合鍵。你認爲這可能與錯誤有關嗎?謝謝!

+0

發佈SQLException的堆棧跟蹤,絕不使用'select *'。 – 2012-01-11 12:01:07

+0

爲什麼你要在'objectFactory()'方法中返回'Object',如果它被硬編碼返回'UsuariosGrupos'? – jere 2012-01-11 12:01:38

+3

我嚴重懷疑這與之前的問題有什麼不同?http:// stackoverflow .com/questions/8793399/org-postgresql-util-psqlexception-the-column-name-usuario-was-not-found-in-this 鑑於你的發佈歷史和這個微不足道的一段代碼的問題數量或以其他方式:非常相似的代碼段)在過去三個月中,我強烈建議您實踐e您的調試技能和SQL知識,而不是運行到您遇到的每個障礙的StackOverflow。 – 2012-01-11 12:02:30

回答

1

從你previous post,你的表似乎如下所示:

Usuarios | Grupos 

admin  2 
admin  3 

那麼你ResultSet應該rs.getString("Grupos");

+0

我通過將表更改爲小寫usuario和grupo來對錶進行更改。所以,我對rs.getString(「usuario」)和rs.getString(「grupo」)進行了更改 – ShaunK 2012-01-11 12:29:52

0

我將查詢ResultSetMetadata來檢查什麼columnLabels它認爲它實際上已經爲您提供。

另請參見:請在查詢時明確。不要使用SELECT *,而是指定明確的列名(在這種情況下:如果確實沒有列,則會提前顯示錯誤grupos

相關問題