MyBatis ist ein hervorragendes Rahmen für Persistenzschicht, das einfache SQL -Abfragen, gespeicherte Verfahren und erweiterte Zuordnung unterstützt. MyBatis eliminiert manuelle Einstellungen fast aller JDBC -Code und -Parameter sowie die Suche in der Ergebnisse des Ergebnissatzes. MyBatis kann einfache XML oder Anmerkungen zur Konfiguration und ursprüngliche Zuordnung, Mapping -Schnittstellen und Javas Pojos (einfache alte Java -Objekte) in Datenbank in der Datenbank verwenden.
Jetzt, da MyBatis immer beliebter wird, weiß jeder seine Vorteile, also werde ich nicht viel sagen, sondern nur über die wichtigsten Punkte sprechen.
MyBatis bietet dynamische SQL -Funktionen. Wir können <if> <wow> <Where> <ansonsten> <Feach> usw. verwenden, damit wir dynamische SQL schreiben können, die gemäß den Bedingungen erzeugt werden. In der Mitte gibt es jedoch ein kleines Missverständnis des <if> -Tags, das wir häufig verwenden, was bei uns versehentlich herunterfällt. Lassen Sie mich Ihnen ein normales Beispiel geben:
<select id = "findActiveBLogWithtitlelike" ParameterType = "Blog" resultType = "Blog"> SELECT * Aus dem Blog wobei State = 'Active' <if test = "title!
Wenn der Titel nicht gleich Null ist, werden im obigen Beispiel die Bedingungen im <if> -Tag gespleißt, so dass die SQL -Anweisung dynamisch ist.
Aber wenn wir alle Bedingungen beurteilen, schreiben Sie so:
<select id = "findActiveBLogWithtitlelike" ParameterType = "Blog" resultType = "Blog"> SELECT * Aus dem Blog wobei <if test = "userId!
Kein Problem, oder? Zumindest ist es syntaktisch gut, zumindest kann es normalerweise eine SQL erzeugen.
Ich weiß jedoch nicht, ob Sie bemerkt haben, dass dies passiert, wenn alle Bedingungen null sind?
Wählen Sie * aus dem Blog wo
Hast du es gesehen? Kann ein solches SQL erfolgreich ausgeführt werden?
Die Antwort ist natürlich nein.
Also, was soll ich tun? Denken Sie dann daran, dass beim Schreiben dynamischer SQL zunächst überlegen, ob alle Bedingungen auftreten, wenn nicht alle Bedingungen wahr sind und ob es nur einen geben wird, bei dem es sich nur um eine Bedingungen handelt. Dann müssen Sie nur ein <Where> -Tag hinzufügen, um alle Bedingungen zu wickeln.
<select id = "findActiveBLogWithtitlelike" parameterType = "blog" resultType = "blog"> select * aus blog <wobei> <if test = "userId!
Auf diese Weise, wenn nicht alle Bedingungen wahr sind, wo werden nicht geschrieben.
Zu diesem Zeitpunkt stellte der intelligente Freund fest, dass, wenn die erste Bedingung nicht wahr ist und die zweite Bedingung wahr ist, SQL so wird?
Wählen Sie * aus dem Blog, den Titel wie #{Titel}Machen Sie sich keine Sorgen, wenn Sie das <File -Tag verwenden, um die Bedingungen zu umgeben, wird es automatisch entfernt und.
Das obige ist die kleine Falle der Verwendung dynamischer SQL -Tags des Editors, um Ihnen von MyBatis vorzustellen. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!