mybatis的IN结合foreach标签的用法参数是集合(或者实体类)里面装数组

dao层方法:

@Repository
public interface AppointDao extends Mapper<Appoint> {
    List<Appoint> queryAppointListByCondition(@Param("conditionMap") AppointCondition conditionMap);
}

实体类(map也可以):

@Data
public class AppointCondition extends BaseCondition {
    private List<Long> deviceIds;//这就是IN后面要查的List数组
}

xml:

<resultMap id="appointResultMap" type="appoint" extends="BaseBusLongEntity.entity">
    <result property="realExpend" column="C_REAL_EXPEND"/>
</resultMap>
<sql id="allColumn">
    o.C_REAL_EXPEND
</sql>
<sql id="queryCondition">
    <if test="conditionMap.deviceIds !=null">
        AND o.C_DEVICE_ID IN
        <foreach collection="conditionMap.deviceIds" item="deviceIdList" open="(" close=")" separator="," index="index">
            #{deviceIdList}
        </foreach>
    </if>
</sql>
<select id="queryAppointListByCondition" resultMap="appointResultMap">
    SELECT <include refid="allColumn"/>
    FROM appoint o
    WHERE 1=1
    <include refid="queryCondition"/>
</select>

重点讲解:

<foreach collection="conditionMap.deviceIds" item="deviceIdList" open="(" close=")" separator="," index="index">
    #{deviceIdList}
</foreach>

即:

<foreach collection="参数中要遍历的参数单列集合" item="数组别名" open="(" close=")" separator="," index="index">
    #{数组别名}
</foreach>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值