sql >> Databasteknik >  >> RDS >> Mysql

Jokertecken i Java PreparedStatements

Du sätter % i den bundna variabeln. Så det gör du

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

Du bör lägga till ESCAPE '!' så att du kan undkomma specialtecken som är viktiga för GILLA i dina ingångar.

Innan du använder titel eller artist du bör sanera dem (som visas ovan) genom att undvika specialtecken (! , % , och [ ) med en metod som denna:

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



  1. Finns det några begränsningar för längden på strängen i mysql?

  2. Undantag i huvudtråden java.sql.SQLEUndantag:Åtkomst nekad för användare ''@'localhost' (med lösenord:NO)

  3. Vad betyder "osignerad" i MySQL och när ska det användas?

  4. XOR-begränsning i Mysql