mybatis-plus的xml文件中判断输入的list不为空

发布时间 2023-10-10 09:56:46作者: BlogMemory

在 MyBatis-Plus 的 XML 文件中,可以使用 OGNL 表达式来判断输入的 list 是否为空。具体方法如下:

<select id="selectByIds" resultType="com.example.entity.User">
  SELECT * FROM user WHERE id IN
  <foreach collection="list" item="id" open="(" close=")" separator=",">
    #{id}
  </foreach>
  <if test="list != null and list.size() > 0">
    AND status = 1
  </if>
</select>

在这个例子中,我们使用了 <if> 标签来判断输入的 list 是否为空。test 属性中的表达式 list != null and list.size() > 0 判断了 list 不为空且长度大于 0 时才会执行 SQL 语句中的 AND status = 1 条件。

另外,我们还使用了 <foreach> 标签来遍历输入的 list,将其中的元素作为查询条件的一部分。注意,在这个例子中,我们将 <foreach> 标签放在了 SQL 语句中间,而不是放在 WHERE 子句中。这是因为如果 list 为空,整个 SQL 语句就会变成 SELECT * FROM user WHERE id IN (),这是无效的 SQL 语句,会导致错误。因此,我们需要使用 <if> 标签来判断 list 是否为空,只有在 list 不为空时才会执行 SQL 语句中的 AND status = 1 条件。