Vous mettez le % dans la variable liée. Alors vous faites
stmt.setString(1, "%" + likeSanitize(title) + "%");
stmt.setString(2, "%" + likeSanitize(artist) + "%");
Vous devez ajouter ESCAPE '!' pour vous permettre d'échapper aux caractères spéciaux qui comptent pour LIKE dans vos entrées.
Avant d'utiliser titre ou artiste vous devez les nettoyer (comme indiqué ci-dessus) en échappant des caractères spéciaux ( ! , % , _ , et [ ) avec une méthode comme celle-ci :
public static String likeSanitize(String input) {
return input
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
}