Eine der leistungsstarken Merkmale von MyBatis sind normalerweise seine dynamischen SQL -Funktionen. Wenn Sie Erfahrung mit JDBC oder anderen ähnlichen Frameworks haben, verstehen Sie, wie schmerzhaft es ist, SQL -Saiten bedingt zusammenzuschließen, sicher, dass Sie am Ende der Liste keine Leerzeichen oder Kommas weglassen können. Dynamisches SQL kann diesen Schmerz gründlich bewältigen.
Dynamisches SQL
MyBatis 'dynamischer SQL löst den Schmerz des SQL -String -Spleißens.
1.Wenn
<select id = "findActiveBLogWithtitlelike" ParameterType = "Blog" resultType = "Blog"> SELECT * Aus Blogwhere State = 'Active' <if test = "title! = null"> und title wie #{title} </if> </select> Dieser Satz enthält eine optionale Textsuchfunktion. Wenn kein Titel übergeben wird, werden alle aktivierten Blogs zurückgegeben.
Wenn ein Titel übergeben wird, wird der ähnliche Titel gefunden.
2. Wählen Sie, wann, sonst
<select id = "findActiveBlog -ähnlicher" parameterType = "blog" resultType = "blog"> select * aus Blogwhere <wählens> <wenn test = "title! 1 </sonst> </wählen> </select>
Hinweis: Wenn keine der oben genannten Bedingungen übereinstimmt, wird es aus dem Blog WO SELECT *
Wenn es nur eine zweite Übereinstimmung gibt, wird es aus dem Blog Where und Titel wie Somelike ausgewählt *
Offensichtlich wird dies bei der Frage scheitern. Um dieses Problem zu lösen, bietet MyBatis eine Lösung.
<select id = "findActiveBlog -ähnlicher" parameterType = "blog" resultType = "blog"> select * aus Blogwhere <Trim Prefix = "wob #{Author.Name} </wenn> <ansonsten> und vorgestellt = 1 </sonst> </wählen> </trim> </select>Die Überschreibungseigenschaft wird mit einem Pipe -Text -Separator überschrieben, und der leere Raum ist hier wichtig. Das Ergebnis besteht darin, den in InnerText angegebenen Inhalt in Overrides zu entfernen.
3.Set
<Update id = "updateAuthorifnegary" parameterType = "Autor"> Aktualisieren Sie Autor <Set> <if test = "userername! id =#{id} </update>Das gleiche Problem wie oben, nach der Optimierung:
<Update id = "updateAuthorifnegary" parameterType = "Autor"> Update Autor <trim prefix = "wob NULL "> E -Mail =#{E -Mail} </if> </set> wobei id =#{id} </trim> </update>Das obige ist das Problem des mybatis dynamischen Spleißens von SQL -Strings, die Ihnen vom Herausgeber vorgestellt wurden. 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!