Bạn đặt% vào biến bị ràng buộc. Vì vậy, bạn làm
stmt.setString(1, "%" + likeSanitize(title) + "%");
stmt.setString(2, "%" + likeSanitize(artist) + "%");
Bạn nên thêm ESCAPE '!' để cho phép bạn thoát các ký tự đặc biệt quan trọng để LIKE trong đầu vào của bạn.
Trước khi sử dụng tiêu đề hoặc nghệ sĩ bạn nên khử trùng chúng (như được hiển thị ở trên) bằng cách thoát các ký tự đặc biệt (! , % , _ và [ ) với một phương thức như thế này:
public static String likeSanitize(String input) {
return input
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
}