条件 ‹if›

Exisi 2021-03-27 07:29:20
Categories: Tags:
  • <if> 通常用于在SQL语句中添加条件语句。它可以根据传入的参数动态判断是否需要添加条件语句。

示例

<select id="findUsers" parameterType="map" resultType="User">

SELECT * FROM users

WHERE 1=1

<if test="name != null">

AND name = #{name}

</if>

<if test="age != null">

AND age = #{age}

</if>

</select>

 

属性

描述

test

<if> 标签的表达式,一般用于判断传递的参数是否存在

 

在这个例子中,<if>元素分别用于判断是否需要添加nameage条件。如果nameage都不为null,则会生成如下的SQL语句:

 

SELECT * FROM users WHERE 1=1AND name = #{name} AND age = #{age}

 

如果只有name不为null,则会生成如下的SQL语句:

 

SELECT * FROM users WHERE 1=1AND name = #{name}

 

如果只有age不为null,则会生成如下的SQL语句:

 

SELECT * FROM users WHERE 1=1AND age = #{age}

 

如果nameage都为null,则会生成如下的SQL语句:

 

SELECT * FROM users WHERE1=1

<if> 元素只有在test表达式的结果为true时才会生效。如果test表达式的结果为false,则<if>元素会被忽略。