tutorial statement preparedstatement prepared los funcionamiento executeupdate example java mysql jdbc prepared-statement

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!