Ver Mensaje Individual
  #12 (permalink)  
Antiguo 11/03/2009, 11:47
rocklove
 
Fecha de Ingreso: marzo-2009
Mensajes: 8
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: PreparedStatement

public Usuarios LoginPrepared(String usuario,String paswd) throws ValidaException {
List<Usuarios> salida = new ArrayList<Usuarios>();
Connection con = new Connection();
PreparedStatement ps = null;
ResultSet rs = null;
int indice=1;
String qry=" Select * from Usuarios u where u.cuenta= ? AND u.clave = ? and activa=1 order by u.cveUsuario ";
try {
con.open();
ps = con.prepareStatement(qry);
ps.setString(indice++,"edoQro");
ps.setString(indice++,"1");
rs=ps.executeQuery();
while (rs.next()) {
Usuarios an = new Usuarios();

an.setNivel(rs.getInt("Nivel"));
an.setCuenta(rs.getString("Cuenta"));
an.setClave(rs.getString("Clave"));
an.setNombre(rs.getString("Nombre"));
an.setIdServidor(rs.getInt("idServidor"));
an.setCveUsuario(rs.getInt("CveUsuario"));
an.setFua(rs.getDate("FUA"));
an.setEmail(rs.getString("EMAIL"));
an.setMenus(new ArrayList<Menu>());
List<MenuUsuario> menus = (MenuUsuarioDAO.getInstance().obtenerMenuUsuario(a n.getCveUsuario()));
for (Iterator iter = menus.iterator(); iter.hasNext();) {
MenuUsuario element = (MenuUsuario) iter.next();
an.getMenus().add(MenuDAO.getInstance().get(elemen t.getIdMenu()));
}

salida.add(an);
}
rs.close();
rs=null;
con.close();
con=null;
ps.close();
ps=null;

if (salida != null && salida.size() > 0)
return salida.get(0);
else
return null;

} catch (Exception e) {
e.printStackTrace();
throw new ValidaException(ValidaException.DATOS, "error.generico.consulta" + e.getMessage());
}
finally{

}

}


Ok aqui esta el codigo nuevamente. como dije anteriormente an esta declarado dentro del while por que se supone que por cada registro que se obtenga se crea un objeto de este tipo y al final antes de salir del while se añade a una lista del tipo similar. en ningun momento se usa an fuera del while como se ve en el codigo. creo que todas las respuestas recibidas se centran en an y que esta fuera, pero, eso no es problema, de hecho no hay ninguna exception, por lo cual es correcto manejarlo asi. El problema que tengo es que al momento de ejecutar el query no me trae datos. el query es correcto, como podria observar el query ya armado, es decir cuando los ? son sustituidos por los valores pasados en ps.setString... es posible...

Gracias de antemano.