Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các ký tự đại diện trong Java PreparedStatements

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ới một phương thức như thế này:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao PostgreSQL quá chậm trên Windows?

  2. Định dạng chuỗi với nhiều tham số để MySQL có thể xử lý chúng

  3. Thời gian thực thi tối đa trong phpMyadmin

  4. Kết nối Visual c ++ 2008 với MySql

  5. LỖI 1064 (42000):Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn sử dụng tương ứng với phiên bản máy chủ MySQL của bạn để biết cú pháp phù hợp để sử dụng