Mybatis传入 List<Map<String,Object>>的入参

直接上代码吧:

service层:

 Map<String,Object>  paramMap = new HashMap<>();
        List<Map<String,Object>>  paramMapList = new ArrayList<>();
        for(ChannelParam channelParam:paramList){
            paramMap.put("device_serial",channelParam.getDeviceSerial());
            paramMap.put("channel_no",channelParam.getChannelNo());
            paramMapList.add(paramMap);
        }
        List<DeviceChannel> deviceChannelList = channelMapper.selectListByChannel(paramMapList);

备注:这里的ChannelParam类是个实体类

@Data
public class ChannelParam {

    private String deviceSerial;
    private Integer channelNo;
}

mapper层:

List<DeviceChannel> selectListByChannel(List<Map<String,Object>>  paramMapList);

sql配置文件:

<select id="selectListByChannel" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from device_channel
    where
    <foreach item="item" index="key" collection="list"
             open="" separator="OR" close="">
      device_serial=#{item.device_serial} and
      channel_no = #{item.channel_no}
    </foreach>

  </select>

解释一下:   collection这里用的是list,这个是mybatis源码中默认的,非list用collection,可以跟进源码看看

     item.device_serial 和 item.channel_no  就相当于 获取map的key名和value

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值