Mysql
 sql >> Database >  >> RDS >> Mysql

Caratteri jolly in Java PreparedStatements

Metti la % nella variabile associata. Così fai

   stmt.setString(1, "%" + likeSanitize(title) + "%");
   stmt.setString(2, "%" + likeSanitize(artist) + "%");

Dovresti aggiungere ESCAPE '!' per permetterti di evitare caratteri speciali che contano per MI PIACE in te input.

Prima di utilizzare titolo o artista dovresti disinfettarli (come mostrato sopra) eliminando i caratteri speciali (! , % , _ e [ ) con un metodo come questo:

public static String likeSanitize(String input) {
    return input
       .replace("!", "!!")
       .replace("%", "!%")
       .replace("_", "!_")
       .replace("[", "![");
}