Cómo entender la dinámica y estática de sql en mybatis

En MyBatis, las sentencias SQL se pueden dividir en dinámicas y estáticas. SQL estático se refiere a la declaración de SQL que se ha corregido cuando el programa de aplicación escribe la declaración de SQL, mientras que SQL dinámico se refiere a la declaración de SQL que se puede generar dinámicamente de acuerdo con las condiciones.

El SQL dinámico es muy común en el desarrollo real. Puede combinar si, elegir, cuándo, de lo contrario, foreach y otros elementos según las condiciones para generar diferentes declaraciones SQL.

Los siguientes son algunos SQL dinámicos comunes:

Elemento if: El elemento if es un juicio condicional, que puede determinar si se deben incluir fragmentos de instrucciones SQL de acuerdo con la condición. Código de muestra:

<select id="selectBlog" resultType="Blog">
  select * from Blog
  <where>
    <if test="title != null">
      and title like #{title}
    </if>
    <if test="author != null">
      and author like #{author}
    </if>
  </where>
</select>

elegir elemento: El elemento de elección es similar a la declaración de cambio en Java, que puede hacer coincidir el elemento cuando de acuerdo con la condición, y ejecutar el elemento de lo contrario si ninguno de ellos coincide. Código de muestra:

<select id="selectBlog" resultType="Blog">
  select * from Blog
  <where>
    <choose>
      <when test="title != null">
        and title like #{title}
      </when>
      <when test="author != null">
        and author like #{author}
      </when>
      <otherwise>
        and 1=1
      </otherwise>
    </choose>
  </where>
</select>

elemento foreach: el elemento foreach se puede usar para iterar una colección o matriz y pasar los elementos de la colección o matriz como parámetros SQL. Código de muestra:

<select id="selectBlog" resultType="Blog">
  select * from Blog where id in
  <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
    #{item}
  </foreach>
</select>

A través de SQL dinámico, la escritura de SQL se puede simplificar en gran medida y se puede realizar una combinación más flexible de declaraciones SQL.

Versión 2023 del curso intensivo de base cero del tutorial de MyBatis (explicación básica, dominio integral)

Supongo que te gusta

Origin blog.csdn.net/GUDUzhongliang/article/details/131557142
Recomendado
Clasificación