Вы помещаете% в связанную переменную. Итак, вы делаете
stmt.setString(1, "%" + likeSanitize(title) + "%");
stmt.setString(2, "%" + likeSanitize(artist) + "%");
Вы должны добавить ESCAPE '!' , чтобы позволить вам экранировать специальные символы, которые имеют значение для LIKE при вводе.
Перед использованием title или artist необходимо очистить их (как показано выше), экранируя специальные символы (! , % , _ и [) с помощью такого метода:
public static String likeSanitize(String input) {
return input
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
}