Bạn cần đặt nó trong chính giá trị, không phải trong chuỗi SQL câu lệnh đã chuẩn bị sẵn.
Vì vậy, điều này nên làm đối với một đối sánh tiền tố:
notes = notes
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
pstmt.setString(1, notes + "%");
hoặc kết hợp hậu tố:
pstmt.setString(1, "%" + notes);
hoặc đối sánh toàn cầu:
pstmt.setString(1, "%" + notes + "%");