los - Comodines en Java PreparedStatements
prepared statement mysql java select (1)
Coloca el% en la variable enlazada. Tu también
stmt.setString(1, "%" + likeSanitize(title) + "%");
stmt.setString(2, "%" + likeSanitize(artist) + "%");
Deberías agregar ESCAPE ''!'' para permitirte escapar de los caracteres especiales que importan a LIKE en tus entradas.
Antes de usar el título o el artista , debe desinfectarlos (como se muestra arriba) escapando caracteres especiales ( ! , % , _ , Y [ ) con un método como este:
public static String likeSanitize(String input) {
return input
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
}
Aquí está mi declaración SQL actual:
SEARCH_ALBUMS_SQL = "SELECT * FROM albums WHERE title LIKE ? OR artist LIKE ?;";
Devuelve coincidencias exactas con los nombres del álbum o del artista, pero no con otra cosa. No puedo usar un ''%'' en la declaración o recibo errores.
¿Cómo agrego comodines a una declaración preparada?
(Estoy usando Java5 y MySQL)
¡Gracias!