JSP y el operador LIKE de SQL
Hola a todos!
Estoy intentando hacer una consulta parecida esta:
PreparedStatement consulta;
consulta = con.prepareStatement("SELECT p.* FROM peliculas as p WHERE p.titulo LIKE '%?%';");
consulta.setString(1,titul);
rs = consulta.executeQuery();
El problema viene en el LIKE '%?%' , ya que ? es el parámetro que recojo desde el formulario, pero a su vez el SQL lo interpreta como un carácter cualquiera.
Creo que el problema está ahí, aunque no estoy seguro. ¿Como lo puedo resolver?
A ver si alguien me pude echar una mano. Gracias.
Estoy intentando hacer una consulta parecida esta:
PreparedStatement consulta;
consulta = con.prepareStatement("SELECT p.* FROM peliculas as p WHERE p.titulo LIKE '%?%';");
consulta.setString(1,titul);
rs = consulta.executeQuery();
El problema viene en el LIKE '%?%' , ya que ? es el parámetro que recojo desde el formulario, pero a su vez el SQL lo interpreta como un carácter cualquiera.
Creo que el problema está ahí, aunque no estoy seguro. ¿Como lo puedo resolver?
A ver si alguien me pude echar una mano. Gracias.
También lo puedes hacer así. Espero haberte ayudado.
interrogacion="?";
interrogacion="%"+interrogacion+"%";
consulta = con.prepareStatement("SELECT p.* FROM peliculas as p WHERE p.titulo LIKE interrogacion;");
consulta.setString(1,titul);
rs = consulta.executeQuery();
interrogacion="?";
interrogacion="%"+interrogacion+"%";
consulta = con.prepareStatement("SELECT p.* FROM peliculas as p WHERE p.titulo LIKE interrogacion;");
consulta.setString(1,titul);
rs = consulta.executeQuery();
Yo lo tengo hecho así y me funciona bien;
consulta = con.prepareStatement("SELECT p.* FROM peliculas as p WHERE p.titulo LIKE ?");
titul = "%" + titul.trim() + "%";
consulta.setString(1,titul);
Espero que te sea de ayuda, un saludo,
isabel
consulta = con.prepareStatement("SELECT p.* FROM peliculas as p WHERE p.titulo LIKE ?");
titul = "%" + titul.trim() + "%";
consulta.setString(1,titul);
Espero que te sea de ayuda, un saludo,
isabel
Te recomiendo que hagas lo que dice la otra respuesta ya que al usar los parámetros se supone que se incorpora a la select lo que sea necesario en función del tipo de parámetro que le insertas, en el caso de una cadena de texto CODE=? se podría sustituir por CODE='parametro' pero al poner el parámetro ya dentro de unas comillas simples el JDBC te dará el fallo porque estarías poniendo algo como CODE=''parametro'' (con dos comillas simples en cada parte)