Die Gründe für die Inkonsistenz zwischen der Abfrage in der Datenbank und der Abfrage über Java-Code zur Rückgabe von Daten

Als der Autor heute den Code schrieb, stieß er beim Abfragen in der Datenbank und beim Abfragen über Java-Code auf das Problem der Inkonsistenz der zurückgegebenen Daten. Meine Lösung ist:

  1. Überprüfen Sie, ob die beiden SQL-Anweisungen konsistent sind:
    In Java-Code ändert die SQL-Anweisung möglicherweise die ursprüngliche SQL-Anweisung nach dem Zusammenfügen der Zeichenfolge. Wenn Sie also auf dieses Problem stoßen, können Sie zunächst prüfen, ob die SQL-Anweisung letztendlich das ist, was wir wollen. SQL-Code zum Ausführen ;
  2. Überprüfen Sie, ob das Parameter-Splicing falsch ist:
    Bei der Durchführung einer Abfrage mit mehreren Bedingungen wird möglicherweise ein Parameter-Splicing durchgeführt. Wenn das Splicing falsch ist, gibt es möglicherweise noch ein paar weitere ähnliche Bedingungen wie „und“ oder „1=1“. Wenn ja kein Problem mit der SQL-Anweisung, Sie können prüfen, ob ein Problem mit Ihren Parametern vorliegt;
  3. Überprüfen Sie, ob es sich um ein Problem mit der Zeichenfolgenersetzung handelt:
    SQL: Wählen Sie * aus dem Benutzer mit der ID in (${list}) aus
    . Wenn Sie ${list} zum Ersetzen verwenden und der Wert der Liste 1, 2, 3 ist, kann dies perfekt sein ersetzt, der String wird nicht ersetzt, was ist der Wert, er bleibt derselbe, wie er nach dem Ersetzen ist;
    bei Verwendung von #{list} werden automatisch Anführungszeichen für den String-Typ hinzugefügt, der zu „1,2,3“ wird „Das ist nicht das, was wir wollen.

Möglicherweise gibt es noch andere Gründe für dieses Problem, aber bisher habe ich nur überprüft, ob das Problem dadurch gelöst wurde. Wenn es in Zukunft andere Gründe gibt, werde ich diesen Artikel aktualisieren.

Referenz-URL

1. Der Unterschied zwischen #{} und ${}

おすすめ

転載: blog.csdn.net/qq_44726330/article/details/116874401