请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 150|回复: 0

mybatis 遍历字符串数组

[复制链接]

28

主题

28

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2023-5-29 20:07:37 | 显示全部楼层 |阅读模式
mybatis传入字符串,集合,数组并遍历
<!--传递参数为字符串approveStatus =“通过,不通过” item为遍历后的参数-->
<if test="approveStatus != null and approveStatus!=''">
      and i.approve_status IN
        <foreach item="status" collection="approveStatus.split(',')" open="(" separator="," close=")">
            #{status}
        </foreach>
</if>
这个写法比较省事,实体类的ordercode字段不需要添加orderCode数组或者List,直接在xml中的foreach的collection使用orderCode.split(',')变成数组。

下面的二种比较常见

<!--传递参数为集合approveStatusList,集合中包含对象user ,approveStatusList={user1,user2 } -->
<if test="approveStatusList!= null and approveStatusList.size>0 ">
                                AND operate_user in
                                <foreach collection="approveStatusList" open="(" close=")" separator="," item="user" index="index">
                                        #{user.userName}
                                </foreach>
                        </if>
<!--传递参数为数组approveStatus =[通过,不通过] 此时collection必须为array item为传递的数组参数,且参数名要保持一致-->
<if test="approveStatus != null and approveStatus!=''">
      and i.approve_status IN
        <foreach item="approveStatus" collection="array" open="(" separator="," close=")">
            #{approveStatus}
        </foreach>
</if>


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2023-10-5 04:43 , Processed in 0.043004 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表