Foros del Web » Programación para mayores de 30 ;) » Java »

Dos consultas sql en un servlet

Estas en el tema de Dos consultas sql en un servlet en el foro de Java en Foros del Web. Hola, lo que estoy tratando de hacer son dos consultas a tablas diferentes, y mostrar los datos en jsp diferentes. El error que me lanza ...
  #1 (permalink)  
Antiguo 01/07/2012, 21:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Dos consultas sql en un servlet

Hola, lo que estoy tratando de hacer son dos consultas a tablas diferentes, y mostrar los datos en jsp diferentes.

El error que me lanza hasta el momento es:

javax.servlet.ServletException: java.sql.SQLException: Operation not allowed after ResultSet closed

Código:
String query = "SELECT *FROM cliente WHERE usuario='"+user+"' "
                    + "AND pass='"+pass+"'";
            
            ResultSet rs = (ResultSet) sta.executeQuery(query);
            
                if(rs.next())
                {
                    String s2 = rs.getString("nombre");
                    request.getSession().setAttribute("usuario", s2);
                    response.sendRedirect(response.encodeRedirectURL("Resultados.jsp"));
                     
                }
              
              String query2 = "SELECT *FROM producto";
              ResultSet rs2 = (ResultSet) sta.executeQuery(query2);
               if(rs.next())
                {
                    String s3 = rs.getString("detprod");
                    request.getSession().setAttribute("usuario", s3);
                    response.sendRedirect(response.encodeRedirectURL("Electronica.jsp"));;
                     
                }
            
                   
            
           rs2.close();
           
            rs.close();
           
            sta.close();
  #2 (permalink)  
Antiguo 01/07/2012, 22:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Dos consultas sql en un servlet

En la segunda consulta, obtienes rs2, pero estás usando rs para los resulados.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 01/07/2012, 22:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Dos consultas sql en un servlet

Cita:
Iniciado por chuidiang Ver Mensaje
En la segunda consulta, obtienes rs2, pero estás usando rs para los resulados.

Se bueno.

Y está mal que use un rs2? se puede usar el rs para los dos?
  #4 (permalink)  
Antiguo 01/07/2012, 22:44
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Dos consultas sql en un servlet

Modifiqué lo de rs2, pero el error persiste.

String query = "SELECT *FROM cliente WHERE usuario='"+user+"' "
+ "AND pass='"+pass+"'";

ResultSet rs = (ResultSet) sta.executeQuery(query);

if(rs.next())
{
String s2 = rs.getString("nombre");
request.getSession().setAttribute("usuario", s2);
response.sendRedirect(response.encodeRedirectURL(" Resultados.jsp"));

}

String query2 = "SELECT *FROM producto";
ResultSet rs2 = (ResultSet) sta.executeQuery(query2);
if(rs.next())
{
String s3 = rs.getString("detprod");
request.getSession().setAttribute("usuario", s3);
response.sendRedirect(response.encodeRedirectURL(" Electronica.jsp"));;

}



rs2.close();

rs.close();

sta.close();
  #5 (permalink)  
Antiguo 01/07/2012, 23:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Dos consultas sql en un servlet

El error ahora es : java.lang.IllegalStateException

Se ejecuta la primera consulta correctamente si saco esto:

request.getSession().setAttribute("usuario", s3);
response.sendRedirect(response.encodeRedirectURL(" Electronica.jsp"));
  #6 (permalink)  
Antiguo 02/07/2012, 01:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Dos consultas sql en un servlet

Hola:

Creo que no me expliqué bien la primera vez, esto es lo que está mal

ResultSet rs2 = (ResultSet) sta.executeQuery(query2);
if(rs.next())

Si los resultados los obtienes en rs2, ¿por qué haces el if con rs?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 02/07/2012, 01:26
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Dos consultas sql en un servlet

Cita:
Iniciado por Lain0x Ver Mensaje
Y está mal que use un rs2? se puede usar el rs para los dos?
No está mal ni bien, dependiendo de lo que quieras, puede ser incorrecto. Usando el rs donde sugiere que quieres usar el rs2, estás trabajando con el primer SQL, no con el segundo.

Un saludo.

Etiquetas: jsp, servlet, sql, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.