Foro sobre Java SE > Error en consulta SQL
No puedes incluir un %?% en el preparedStatement, porque entonces buscaría las coincidencias del carácter ? en el contenido de la columna, y no lo interpreta como wildcard. De ahí la excepción.
PreparedStatement ps=conn.prepareStatement("SELECT * FROM articulos
WHERE descripcion like ?");
ps.setString(1, %+texto+%); // es la variable que le pasamos como parametro
Hay un problema no permite usar esta expresion %+texto+%, da error.
Debería ser así: "%"+texto+"%"
Con las prisas no puse las comillas. De todos modos, el procedimiento estaba claro, y el error del compilador creo que era fácil de detectar.
No si asi ya probe y nada. Da este error
Before start of result set
Ya esta solucionado, por arte de magia funciono ahora.
Muchas gracias por tu ayuda.
Saludos
¿Por arte de magia? :D
"Before start of result set" no es un error, es un trozo incompleto de un stacktrace.
A ver si sale ya la actualización 20 de JavaSE 1.8, para poner más al día mi bola de cristal.
Hola, mi problema es el siguiente, quiero que la consulta me devuelva todo los registros que contengan una palabra o letra que le pasamos.
El programa me falla cuando hace la consulta, justo en este punto:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url);
PreparedStatement ps=conn.prepareStatement("SELECT * FROM articulos
WHERE descripcion like '%?%'");
ps.setString(1, texto); // es la variable que le pasamos como parametro
// desde un JTextField
result=ps.executeQuery();
El error que me da al ejecutar es este:
Parameter index out of range (1 > number of parameters, which is 0)