【问题标题】:org.postgresql.util.PSQLException: The column name usuario was not found in this ResultSetorg.postgresql.util.PSQLException:在此 ResultSet 中找不到列名 usuario
【发布时间】:2012-01-09 18:38:32
【问题描述】:

我收到以下错误:org.postgresql.util.PSQLException: The column name usuario was not found in this ResultSet.

但是,我在适当的类中正确声明了以下列 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;
}

奇怪的是,当我单独测试我的列表时,数据表会显示适当的结果。但是,当我运行整个应用程序时,什么都没有显示,并且我收到错误消息,指出在结果集中找不到列 usuario。有什么建议吗?

表格有两个字段:

Usuarios | Grupos

admin        2
admin        3

当我分离我的 jsf 代码时,它显示正常,但当我将数据放在一个 JSF 文件中时,它不显示数据。

【问题讨论】:

  • 我们能看到“usuarios_grupos”表的结构吗?
  • @Pablo 我更新了我的问题
  • 我认为@Gray 的答案是正确的——当您从结果集中按名称检索项目时,您需要指定数据库中列的名称,而不是对象属性的名称你最终想要设置的。
  • 在 PostgreSQL 中,名称区分大小写。 “usuarios”与“usuarios”不同

标签: java postgresql


【解决方案1】:

您的表转储显示该字段为“Usarios”,但您正在执行rs.getString("usuario")。不应该是下面吗?

rs.getString("usuarios")

如果这不起作用,那么我建议调试您的代码,在 getString 行上放置一个断点并查看 ResultSet 以查看那里的字段名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 2021-03-02
    • 2019-10-26
    • 2018-09-23
    • 2021-01-18
    • 2016-01-27
    • 2015-08-04
    • 2021-06-13
    相关资源
    最近更新 更多