org.postgresql.util.PSQLException:在此ResultSet中找不到列名称usuario

时间:2012-01-09 18:38:33

标签: java postgresql

我收到以下错误: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方法的

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文件上显示数据时,它不会显示数据。

1 个答案:

答案 0 :(得分:4)

您的表转储将字段显示为&#34; Usarios&#34;但你正在做rs.getString("usuario")。不应该是以下几个吗?

rs.getString("usuarios")

如果这不起作用,那么我建议调试你的代码,在getString行放一个断点,然后查看ResultSet以查看字段名称是什么。