mybatis中使用 if条件判断是否为空
时间: 2024-06-13 17:08:17 浏览: 174
在MyBatis中,可以使用`if`标签来进行条件判断,判断对象是否为空。可以直接调用对象自身的方法进行逻辑判断。下面是一个示例:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<if test="userName != null and userName != ''">
AND user_name = #{userName}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
```
在上面的示例中,`if`标签中的`test`属性用于判断对象是否为空。如果`userName`不为空,则会拼接`AND user_name = #{userName}`到SQL语句中。如果`age`不为空,则会拼接`AND age = #{age}`到SQL语句中。
如果要判断一个List是否为空,可以使用`size()`或`isEmpty()`方法。例如:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<if test="userList != null and !userList.isEmpty()">
AND user_id IN
<foreach collection="userList" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</if>
</where>
</select>
```
在上面的示例中,如果`userList`不为空,则会拼接`AND user_id IN (...)`到SQL语句中,其中`...`是`userList`中的元素。
阅读全文