sql >> Database >  >> RDS >> Mysql

Jokertekens in Java PreparedStatements

Je zet het % in de gebonden variabele. Dus jij doet

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

Je moet ESCAPE '!' . toevoegen om u te laten ontsnappen aan speciale tekens die belangrijk zijn voor LIKE in je invoer.

Voordat u titel gebruikt of artiest je moet ze ontsmetten (zoals hierboven weergegeven) door speciale tekens te laten ontsnappen (! , % , _ , en [ ) met een methode als deze:

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



  1. PG::DuplicateTable:FOUT:relatieberichten bestaan ​​al

  2. Methode org.postgresql.jdbc4.Jdbc4Connection.isValid(int) is nog niet geïmplementeerd

  3. Schrijf een getal met twee decimalen SQL Server

  4. PDO-foutopsporing - Query bekijken NA binden?