Grundlegende Verwendung der dynamischen SQL-Anweisung

 

1.if Aussage

Wenn empno nicht leer ist, fügen Sie nach dem WHERE-Parameter AND empno = # {empno} hinzu. Es gibt 1 = 1. Selbst wenn empno null ist, tritt nach WHERE kein Fehler auf.

Zuordnungsdatei

<select id = "getEmpById2" resultType = "emp">  
        SELECT * FROM emp WHERE 1 = 1 
        < if test = "empno! = null"> 
            AND empno = # {empno}
         </ if >    
    </ select>

EmpMapper-Schnittstelle

public Emp getEmpById2 (@param ( "empno") Integer empno) wirft IOException;

Manchmal möchten wir nicht alle Bedingungen anwenden, sondern nur eine aus mehreren Optionen auswählen. Bei Verwendung des if-Tags wird die Bedingung im if-Tag ausgeführt, solange der Ausdruck im Test wahr ist. MyBatis bietet das Auswahlelement. Das if-Tag bezieht sich auf (und), und select bezieht sich auf oder.

2. Where-Anweisung und Choose (wann, sonst)

1.Wenn empno und ename null sind, wird wo in der SQL-Anweisung nicht angezeigt.
2. Das Auswahl-Tag bestimmt, ob die Testbedingung im internen Tag erfüllt ist, wenn das Tag in der richtigen Reihenfolge erfüllt ist. Wenn eines davon wahr ist, endet die Auswahl. Wenn die Bedingungen aller bei Auswahl nicht erfüllt sind, führen Sie SQL andernfalls aus. Ähnlich wie bei Javas switch-Anweisung ist select is switch, wenn dies der Fall ist, andernfalls ist default.

Zuordnungsdatei

<select id = "getEmpById3" resultType = "emp" parameterType = "emp"> 
        SELECT * FROM EMP 
         <where> 
            <choose> 
                <when ​​test = "empno! = null"> 
                    UND empno like # {empno}
                 </ when> 
                <when ​​test = "ename! = null"> 
                    AND ename wie # {ename}
                 </ when> 
                <otherwise> 
                    AND job = "zz" 
                </ otherwise> 
            </ select> 
        </ where> 
    </ select>

3.set Anweisung

Set wird hauptsächlich zur Lösung des Update-Problems verwendet.
Zuordnungsdatei

<update id = "updateEmprById2" parameterType = "emp"> 
        UPDATE emp
         <set> 
            < if test = "ename! = null"> ename = # {ename}, </ if > 
            < if test = "job! = null" > job = # {job}, </ if > 
        </ set> 
        <where> 
            < if test = "empno! = null"> 
                empno = # {empno};
            </ if > 
        </ where> 
    </ update>

4.trim

Die Trimmmarke ist eine formatierte Marke, die die Funktion der eingestellten oder wo-Marke vervollständigen kann.
Verwandte Attribute:
Präfix: Präfix.
prefixOverrides: Entfernen Sie den ersten angegebenen Inhalt.
Suffix: Suffix.
Suffixoverride: Entfernen Sie den zuletzt angegebenen Inhalt.
Zuordnungsdatei

<! - 代替 where -> 
    <select id = "getEmpById4" resultType = "emp" parameterType = "emp"> 
        SELECT * FROM emp
         <! - <where> < if test = "username! = Null"> und name = # {Benutzername} </ if > </ where> -> 
        <trim prefix = "where" prefixOverrides = "AND | OR"> 
            < if test = "empno! = null"> 
                und empno = # {empno}
             </ if > 
            < if test = "ename! = null">
                AND ename = # {ename}
             </ if > 
        </ trim>
    </ select>

Zuordnungsdatei

<! - 代替 set -> 
    <update id = "updateEmprById3" parameterType = "emp"> 
        update emp
         <trim prefix = "set" suffixOverrides = ","> 
            < if test = "ename! = Null"> 
                ename = # {ename},
             </ if > 
            < if test = "job! = null"> 
                job = # {job}
             </ if > 
        </ trim> 
        <trim prefix = "wobei" prefixOverrides = "AND | OR"> 
            < if test = "empno!= null "> 
                und empno = # {empno}
            </ if > 
        </ trim> 
    </ update>

5. für jede Aussage

Foreach wird zum Durchlaufen verwendet, und das durchquerte Objekt kann ein Array oder eine Sammlung sein.
Verwandte Attribute:
Sammlung: Es gibt drei Werte für das Sammlungsattribut, nämlich Liste, Array und Karte.
Öffnen: Präfix.
Schließen: Suffix.
Trennzeichen: Trennzeichen, das angibt, was jedes Element während der Iteration trennt.
Element: Repräsentiert den Alias ​​jedes Elements während der Iteration.
Index: Verwenden Sie einen Variablennamen, um die Indexposition der aktuellen Schleife anzugeben.
Zuordnungsdatei

    <insert id = "addEmp6"> 
        in emp-Werte (ename, job) einfügen
         <foreach collection = "emps" item = "emp" separator = ","> 
            (# {emp.ename}, # {emp.job})
         </ foreach> 
    </ insert>

6.SQL-Block

Zuordnungsdatei

<! - Wiederholten SQL-Inhalt definieren-> 
    <sql id = "baseSql"> 
        empno, ename, job
     </ sql> 
    
    <! - Verwenden Sie include, um den SQL-Block-> 
    <select id = "selEmp1" resultType einzuführen = "emp"> 
        wähle
         <include refid = "baseSql" /> 
         aus emp
     </ select>

 

Ich denke du magst

Origin www.cnblogs.com/JonaLin/p/12706411.html
Empfohlen
Rangfolge