postgresql java此ResultSet是关闭异常

时间:2015-05-08 17:47:03

标签: java postgresql resultset

我试图从Java访问postgresql数据库。我对ResultSet有一些问题,我无法弄清楚原因

这是调用DB的方法。尝试访问while(rs.next())

时抛出异常
public Usuario buscarUsuario(String nombre){

    String sql = "SELECT * from usuario WHERE nombre_usuario = '"+nombre+"'";

    BaseDeDatos.getInstancia().establecerConexion();
    ResultSet rs = BaseDeDatos.getInstancia().ejecutarQuery(sql);

    Usuario us= new Usuario();
    try {
        while(rs.next()){
            us.setNombreUsuario(rs.getObject(1).toString());
            us.setContrasena(rs.getObject(2).toString());
            us.setActivo(rs.getBoolean(3));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

    BaseDeDatos.getInstancia().cerrarConexion();

    return us;

}

这就是BaseDeDatos.getInstancia()。ejecutarQuery(sql)所做的

 public ResultSet ejecutarQuery(String sql){
    try{
        stmt = conexion.createStatement();
        rsst=stmt.executeQuery(sql);
        stmt.close();
    }
    catch (Exception e){
        System.err.println( e.getClass().getName()+": "+ e.getMessage() );
        System.exit(0);
    }
    return rsst;
}

例外:

org.postgresql.util.PSQLException:此ResultSet已关闭。     at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2852)     at org.postgresql.jdbc2.AbstractJdbc2ResultSet.next(AbstractJdbc2ResultSet.java:1890)     在com.CBTD.database.TablaUsuario.buscarUsuario(TablaUsuario.java:20)     在com.CBTD.logica.LoginExpert.validarUsuario(LoginExpert.java:11)     在com.CBTD.logica.prueba.main(prueba.java:40)

我一直在网上搜索,但我无法找到答案。它让我发疯了。请,任何帮助都是有用的。

0 个答案:

没有答案