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

Ejecutar 2 consultas en JSP

Estas en el tema de Ejecutar 2 consultas en JSP en el foro de Java en Foros del Web. Hola, tengo un gran problema y llevo horas sin poder encontrar solución. Tengo un scrip que ejecuta dos consultas, la primera la hace, pero la ...
  #1 (permalink)  
Antiguo 27/11/2013, 17:44
Avatar de jclaurian  
Fecha de Ingreso: diciembre-2004
Ubicación: Tijuana
Mensajes: 85
Antigüedad: 19 años, 4 meses
Puntos: 0
Ejecutar 2 consultas en JSP

Hola, tengo un gran problema y llevo horas sin poder encontrar solución.

Tengo un scrip que ejecuta dos consultas, la primera la hace, pero la 2da me marca error, es la primera vez que trabajo con jsp, ya tengo altas, bajas, modificaciones, pero esta en especial me esta dando mucho dolor de cabeza, pego el código que tengo.

Código:
        String sql2 = "select * from productos where codigo=\""+codigo+"\"";
        Statement consulta = conexion.createStatement();
	ResultSet rs = consulta.executeQuery(sql2);
	
	int nueva = 0;
	
	if(rs.next()) {
		int tempo = rs.getInt("cantidad");
		out.println(tempo);
		nueva = tempo - cantidad;
		out.println(nueva);
	}
	
	rs.close();
	consulta.close();
	
	Statement consulta2 = conexion.createStatement();
	consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");
La primera consulta funciona, pero me marca error en la línea donde tengo:
consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");

lo que tengo alli adentro ya probe poniendolo en un String sql3; incluso si le hago un out.println(sql3) y copio y pego el resultado en phpmyadmin la consulta se hace correctamente.

Acaso no puedo tener dos objetos Statement :S ya no sé qué mas probar :S

Ojala me puedan ayudar.


descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

org.apache.jasper.JasperException: No se puede compilar la clase para JSP:

Ha tenido lugar un error en la línea: 35 en el archivo jsp: /procesarVenta.jsp
Syntax error on token(s), misplaced construct(s)
32: consulta.close();
33:
34: Statement consulta2 = conexion.createStatement();
35: consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");
36:
37:
38: %>


Ha tenido lugar un error en la línea: 35 en el archivo jsp: /procesarVenta.jsp
productos cannot be resolved to a type
32: consulta.close();
33:
34: Statement consulta2 = conexion.createStatement();
35: consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");
36:
37:
38: %>


Ha tenido lugar un error en la línea: 35 en el archivo jsp: /procesarVenta.jsp
Syntax error, insert ";" to complete LocalVariableDeclarationStatement
32: consulta.close();
33:
34: Statement consulta2 = conexion.createStatement();
35: consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");
36:
37:
38: %>


Ha tenido lugar un error en la línea: 35 en el archivo jsp: /procesarVenta.jsp
Syntax error, insert ";" to complete Statement
32: consulta.close();
33:
34: Statement consulta2 = conexion.createStatement();
35: consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");
36:
37:
38: %>


Ha tenido lugar un error en la línea: 35 en el archivo jsp: /procesarVenta.jsp
Type mismatch: cannot convert from String to int
32: consulta.close();
33:
34: Statement consulta2 = conexion.createStatement();
35: consulta2.executeQuery(update productos set cantidad="+nueva+" where codigo="+codigo+");
36:
37:
38: %>
__________________
<< Solo se que no se nada >>
  #2 (permalink)  
Antiguo 27/11/2013, 18:54
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar 2 consultas en JSP

Hola,

Posiblemente,

Cita:
Iniciado por jclaurian Ver Mensaje

Código:
	consulta2.executeQuery("update productos set cantidad="+nueva+
" where codigo=\""+codigo+"\"");
Saludos,
  #3 (permalink)  
Antiguo 28/11/2013, 07:15
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Respuesta: Ejecutar 2 consultas en JSP

El problema viene principalmente porque el método executeQuery() espera un String y no lo esta recibiendo (que es lo que corrige HackmanC en su respuesta)

Consejo de seguridad para acceso a bbdd, cuando hagas una consulta de ese tipo debes evitar ciertos riesgos como es el caso de la inyeccion sql
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL

Para evitar esto puedes usar el objeto PreparedStatement, puedes ver un ejemplo en la documentacion de Oracle

http://docs.oracle.com/javase/7/docs...Statement.html
  #4 (permalink)  
Antiguo 01/12/2013, 02:33
Avatar de jclaurian  
Fecha de Ingreso: diciembre-2004
Ubicación: Tijuana
Mensajes: 85
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Ejecutar 2 consultas en JSP

Gracias por las respuesta. La línea que me proporcionas HackmanC me sigue dando el mismo error, pero yo la veo correcta :S

Se que la aplicación que estoy haciendo no es de lo mas segura, pero por ahora solo es para presentar como proyecto de clase :)

Sigo con el mismo problema, no veo error en el código
__________________
<< Solo se que no se nada >>
  #5 (permalink)  
Antiguo 01/12/2013, 02:54
Avatar de jclaurian  
Fecha de Ingreso: diciembre-2004
Ubicación: Tijuana
Mensajes: 85
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Ejecutar 2 consultas en JSP

Dios, ya di con la solución, me estoy dando topes en la cabeza.

La instrucción que debía utilizar no era executeQuery() sino executeUpdate(), e allí todo el problema, y lo peor es que fue una de las primeras cosas que leí y se me había pasado por completo.
__________________
<< Solo se que no se nada >>
  #6 (permalink)  
Antiguo 02/12/2013, 01:10
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Respuesta: Ejecutar 2 consultas en JSP

Cita:
Iniciado por jclaurian Ver Mensaje
Dios, ya di con la solución, me estoy dando topes en la cabeza.

La instrucción que debía utilizar no era executeQuery() sino executeUpdate(), e allí todo el problema, y lo peor es que fue una de las primeras cosas que leí y se me había pasado por completo.
Madre de dios, no me di cuenta de ello jaja. Pues ahora a seguir trabajando!!

Etiquetas: jsp
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 06:12.