Rumah >Java >javaTutorial >Bagaimana untuk menggunakan kad liar \'suka\' dengan berkesan dengan pernyataan yang disediakan?

Bagaimana untuk menggunakan kad liar \'suka\' dengan berkesan dengan pernyataan yang disediakan?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 14:29:02824semak imbas

How to use the

Menggunakan Kad Liar "suka" dalam Penyata Disediakan

Penyataan yang disediakan menawarkan cara yang berkesan untuk melaksanakan pertanyaan SQL dengan menghalang serangan suntikan SQL dan meningkatkan prestasi . Walau bagaimanapun, penyepaduan kad bebas "suka" dengan pernyataan yang disediakan boleh menjadi agak rumit.

Pertimbangkan pertanyaan berikut yang mencari baris dalam jadual "analisis" berdasarkan kata kunci:

PreparedStatement pstmt = con.prepareStatement(
      "SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();

Untuk menggunakan kad bebas "suka" dengan pertanyaan ini, anda perlu memasukkannya dalam nilai yang terikat pada parameter pernyataan yang disediakan. Hanya menambah "kata kunci%" pada pstmt.setString(1, nota) tidak akan mencukupi.

Sebaliknya, anda boleh melaksanakan awalan, akhiran atau padanan global bergantung pada keperluan anda:

  • Padanan Awalan: Carian padanan awalan untuk baris yang bermula dengan kata kunci. Untuk mencapai ini dengan pertanyaan anda, gunakan kod berikut:
notes = notes
    .replace("!", "!!")
    .replace("%", "!%")
    .replace("_", "!_")
    .replace("[", "![");
PreparedStatement pstmt = con.prepareStatement(
        "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
pstmt.setString(1, notes + "%");
  • Padanan Akhiran: Carian padanan akhiran untuk baris yang berakhir dengan kata kunci. Untuk melaksanakan ini, ubah suai kod seperti berikut:
pstmt.setString(1, "%" + notes);
  • Padanan Global: Carian padanan global untuk baris yang mengandungi kata kunci di mana-mana dalam nilai lajur. Untuk melaksanakan padanan global, gunakan kod berikut:
pstmt.setString(1, "%" + notes + "%");

Ingat untuk melepaskan aksara khas dalam rentetan "nota" menggunakan garis miring ke hadapan () untuk mengelakkannya daripada mengganggu kad liar "suka" cari.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kad liar 'suka' dengan berkesan dengan pernyataan yang disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn