2012-01-09 41 views
1

我收到以下錯誤:org.postgresql.util.PSQLException:在此ResultSet中找不到列名稱usuario。org.postgresql.util.PSQLException:在此ResultSet中未找到列名稱usuario

但是,我有適當的類中正確聲明以下列usuario!

UsuariosGruposDAO.class

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; 
     } 
    } 

UsuariosGrupos.class

public class UsuariosGrupos { 

    private String usuario; 
    private String grupo; 

    public UsuariosGrupos() { 
    } 

    public UsuariosGrupos(String usuario, String grupo) { 
     this.usuario = usuario; 
     this.grupo = grupo; 
    } 

出現在以下行錯誤:

 ugList.add((UsuariosGrupos) objectFactory(rs)); 
我的列表方法的

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; 
} 

奇怪的是,當我單獨測試我的List時,數據表顯示相應的結果。但是,當我運行我的整個應用程序時,什麼都沒有顯示出來,並且我得到了錯誤,指出結果集中找不到列usuario。有什麼建議麼?

表有兩個字段:

Usuarios | Grupos 

admin  2 
admin  3 

它顯示正常,當我分開我的JSF代碼,但是當我有一個JSF文件不顯示數據。

+0

我們能否看到表「usuarios_grupos」的結構? – Pablo 2012-01-09 18:45:04

+0

@Pablo我已經更新了我的問題 – ShaunK 2012-01-09 19:06:40

+0

我認爲@Gray有正確的答案 - 當您按名稱從結果集中檢索項目時,您需要指定數據庫中列的名稱,而不是該屬性的名稱你最終想要設置的對象。 – DaveH 2012-01-09 20:42:24

回答

4

您的錶轉儲顯示該字段爲「Usarios」,但您正在執行rs.getString("usuario")。那應該不是以下?

rs.getString("usuarios") 

如果不工作,那麼我會建議調試代碼,把一個斷點在getString線來看,在ResultSet,看看有什麼字段名在那裏。

相關問題