Mybatis-Implementierungsmethode für Fuzzy-Abfragen

Mybatis-Implementierungsmethode für Fuzzy-Abfragen

Mybatis-Implementierungsmethode für Fuzzy-Abfragen

Der Reverse Assistant von mybatis ist wirklich einfach zu verwenden und kann beim Schreiben regulärer SQL-Anweisungen viel Zeit sparen, kann jedoch keine Fuzzy-Abfrageanweisungen automatisch generieren. Fuzzy-Abfragen sind jedoch in der Entwicklung unverzichtbar, sodass die Fuzzy-Abfragefunktion für den Mapper manuell geschrieben werden muss.

Hier klären wir zunächst den Unterschied zwischen # und $ in MyBatis/Ibatis:

1. # Behandeln Sie alle eingehenden Daten als Zeichenfolge und fügen Sie den automatisch eingehenden Daten doppelte Anführungszeichen hinzu. Beispiel: order by #user_id#, wenn der übergebene Wert 111 ist, dann ist der in SQL analysierte Wert order by "111", wenn der übergebene Wert id ist, dann ist das analysierte SQL order by "id".

2. $ zeigt die eingehenden Daten direkt in SQL an. Beispiel: order by $user_id$, wenn der übergebene Wert 111 ist, dann ist der in SQL analysierte Wert order by user_id, wenn der übergebene Wert id ist, dann ist das analysierte SQL order by id.

3. #Diese Methode kann SQL-Injection weitgehend verhindern.

4. Die $-Methode kann SQL-Injection nicht verhindern.

5. Die $-Methode wird im Allgemeinen verwendet, um Datenbankobjekte wie Tabellennamen zu übergeben.

6. Verwenden Sie grundsätzlich nicht $, wenn Sie # verwenden können.

ps: Bei der Verwendung von mybatis werden Sie auch auf die Verwendung von <![CDATA[]]> stoßen. Die Anweisungen innerhalb dieses Symbols werden nicht als Zeichenfolgen verarbeitet, sondern direkt als SQL-Anweisungen, beispielsweise beim Ausführen einer gespeicherten Prozedur.

Unsere Anforderung ist es, eine Fuzzy-Abfrage für einen Benutzer durchzuführen. Die Idee besteht darin, alle Basisfelder (Benutzername, Geschlecht usw.) mit dem übergebenen Schlüssel (Schlüsselwort) zu vergleichen.

1. UserMapper.xml kodieren

 <Wählen Sie id="queryUserByKey" Parametertyp="Zeichenfolge"
    resultType="com.lqr.pojo.User">
    Wählen Sie * vom Benutzer, wo die UID wie CONCAT('%',#{key},'%')
    oder Benutzername wie CONCAT('%',#{key},'%')
    oder Realname wie CONCAT('%',#{key},'%')
    oder Identifikation wie CONCAT('%',#{key},'%')
    oder per E-Mail wie CONCAT('%',#{key},'%')
  </Auswählen>

2. Codierung von UserMapper.java

List<Benutzer> queryUserByKey(String key);

Das obige Szenario ist das, was ich während der Entwicklung erlebt habe. Ich werde auch in Zukunft weitere Verwendungen von Mybatis-Fuzzy-Abfragen aufzeichnen.

Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht oder kommen Sie zur Diskussion in die Community. Vielen Dank fürs Lesen und ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der universellen Map und des Fuzzy-Abfrageschreibens in Mybatis
  • Mehrere Möglichkeiten zur Implementierung von Fuzzy-Abfragen in MyBatis
  • Detaillierte Erklärung zum Schreiben von Mybatis-Mapper-Dateien
  • MyBatis Fuzzy Query Mapper.xml - Erklärung zum Schreiben

<<:  React tsx generiert einen zufälligen Bestätigungscode

>>:  Lösung für das Fehlen einer chinesischen Eingabemethode in Ubuntu

Artikel empfehlen

So fügen Sie einen Link in HTML ein

Jede Webseite hat eine Adresse, die durch eine UR...

So legen Sie den Standardwert für den Datums-/Uhrzeittyp in MySQL fest

Beim Ändern des Standarddatums-/Uhrzeitwerts über...

Schritte zur Installation von Pyenv unter Deepin

Vorwort In der Vergangenheit habe ich die Python-...

Detaillierte Erklärung des Unterschieds zwischen Tags und Elementen in HTML

Ich glaube, dass es vielen Freunden, die sich mit ...

Erfahren Sie, wie Sie saubere und standardmäßige HTML-Tags schreiben

Guter HTML-Code ist die Grundlage einer schönen W...

Detaillierte Erläuterung der CSS-Randüberlappung und Lösungssuche

Ich habe kürzlich einige CSS-bezogene Wissenspunk...

Einführung in neue ECMAscript-Objektfunktionen

Inhaltsverzeichnis 1. Objekteigenschaften 1.1 Att...

jQuery implementiert Funktionen zum Reduzieren und Erweitern von Artikeln

Dieses Artikelbeispiel teilt den spezifischen Cod...

Bootstrap FileInput implementiert Bild-Upload-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen

Der Container wurde bereits erstellt. So erfahren...

Die Iframe-Aktualisierungsmethode ist bequemer

So aktualisieren Sie Iframe 1. Zum Aktualisieren k...

So versetzen Sie JavaScript in den Ruhezustand oder in den Wartezustand

Inhaltsverzeichnis Überblick Überprüfen von setTi...