- <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>元素分别用于判断是否需要添加name和age条件。如果name和age都不为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}
如果name和age都为null,则会生成如下的SQL语句:
SELECT * FROM users WHERE1=1
注
<if> 元素只有在test表达式的结果为true时才会生效。如果test表达式的结果为false,则<if>元素会被忽略。