Maison >Java >javaDidacticiel >Comment utiliser le caractère générique « J'aime » dans les déclarations préparées ?

Comment utiliser le caractère générique « J'aime » dans les déclarations préparées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 14:13:021009parcourir

How to Use the

Utilisation du caractère générique "J'aime" dans les déclarations préparées

Comprendre le problème

Dans les requêtes de base de données , le caractère générique « J'aime » est couramment utilisé pour rechercher des données en fonction d'un modèle de mot-clé. Lorsque vous utilisez des instructions préparées pour améliorer la sécurité et les performances des requêtes, il peut être difficile d'incorporer efficacement le caractère générique « j'aime ».

Solution utilisant PreparedStatement

Pour utiliser le caractère « j'aime » " dans une instruction préparée, vous ne modifiez pas la chaîne SQL elle-même. Au lieu de cela, définissez le « mot-clé % » dans la valeur que vous avez définie dans l'instruction. Voici comment procéder pour différents types de recherche :

  1. Prefix-Match :

    // Replace escape characters to prevent conflict with wildcard
    notes = notes
     .replace("!", "!!")
     .replace("%", "!%")
     .replace("_", "!_")
     .replace("[", "![");
    PreparedStatement pstmt = con.prepareStatement(
         "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
    pstmt.setString(1, notes + "%");
  2. Suffixe-Match :

    pstmt.setString(1, "%" + notes);
  3. Correspondance globale :

    pstmt.setString(1, "%" + notes + "%");

En définissant le " password%" dans la valeur attribuée à l'instruction préparée, vous pouvez effectuer efficacement des recherches génériques sans compromettre la sécurité ou les performances des requêtes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn