sql >> Databáze >  >> RDS >> Mysql

Zástupné znaky v Java PreparedStatements

Vložíte % do vázané proměnné. Takže vy

   stmt.setString(1, "%" + likeSanitize(title) + "%");
   stmt.setString(2, "%" + likeSanitize(artist) + "%");

Měli byste přidat ESCAPE '!' abyste mohli uniknout speciálním znakům, na kterých záleží, LIKE ve vašich vstupech.

Před použitím title nebo umělec měli byste je dezinfikovat (jak je uvedeno výše) escapováním speciálních znaků (! , % , a [ ) pomocí této metody:

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



  1. Entity Framework Vkládání počátečních dat při opětovném sestavení

  2. Jak získat data, která jsou od minulého pondělí do aktuálního dne?

  3. Povolení TLS v R12.1

  4. nepodařilo se importovat soubor kódovaný utf16 do mysql