【MyBatis】数组与集合判断空

文章介绍了在MyBatis中如何判断集合和数组是否为空,包括在mapper中使用<if>标签结合OGNL表达式检查list、ids等是否为null或空集合,并展示了在遍历元素前进行非空判断的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

集合判空

集合判空2

数组判空

数据判空2


集合判空

此处collection为mapper定义的list名,  不是数据类型

<if test="list!=null and list.size()>0">
	<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</if>

集合判空2

在 MyBatis 中,使用 foreach 标签进行遍历集合元素时,可以在其外部添加 <if> 来判断集合是否为空,示例代码如下:

<select id="queryUserByIds" resultType="User">
   select * from user where id in
   <foreach item="id" collection="ids" open="(" separator="," close=")">
      #{id}
   </foreach>
   <if test="ids == null or ids.isEmpty()">
      <bind name="ids" value="'-1'" />
   </if>
</select>

在上述代码中,<if> 标签中的 test 属性判断了集合 ids 是否为 null 或者空集合。如果集合 ids 为空,则使用 bind 标签初始化 ids,这里设置为 -1。在使用 foreach 标签遍历集合时,如果 ids 为 null 或空,则不会进入 foreach 循环。

可以通过在 foreach 标签外部使用 if 标签对集合是否为空进行判断,然后根据情况进行后续操作。

数组判空

此处collection为mapper定义的Array名,  不是数据类型

<if test="arr!=null and arr.length>0">
	 <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</if>

数据判空2

在 MyBatis 中也可以用 OGNL 表达式判断数组是否为空。可以使用以下方式来实现:

<select id="findUsersByIds" resultMap="user">
    SELECT *
    FROM user
    WHERE user_id IN
    <foreach item="id" collection="ids" separator="," open="(" close=")">
        #{id}
    </foreach>
    <if test="ids != null and ids.length > 0">
        AND status=1
    </if>
</select>

在上述例子中,ids 就是我们要判断是否为空的数组,if 标签中则使用了 OGNL 表达式进行了判断。

有用请点赞,养成良好习惯!

鼓励、交流、疑问请留言!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕白Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值