【发布时间】: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