mybatis中foreach使用

传入的参数为List

Mapper文件是:

public List<User> selectByIds(List<Integer> ids);

xml文件代码片段:

<select id="selectByIds" resultType="com.zyf.entity.User">
        select * from t_xxx where id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
</select>
传入的参数为Array

Mapper文件:

public List<User> selectByIds(int[] ids);

xml文件代码片段:

<select id="selectByIds" resultType="com.zyf.entity.User">
        select * from t_xxxx where id in
        <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
传入的参数为map

service层

		List<Dict> item1 = DictUtils.getDictList((String) params.get("item"));
		List typeList = new ArrayList();
		for (Dict e : item1) {
			typeList.add(e.getLabel());
		}
		params.put("typeList", typeList);
		params.put("grade", grade);
		params.put("type", ((String) params.get("item")).substring(((String) params.get("item")).length()-5));
		return this.dao.getAccidentReportFormByOccurTimeAndType(params);

dao层

List<Map> getAccidentReportFormByOccurTimeAndType(Map<String, Object> params);

xml

<select id="getAccidentReportFormByOccurTimeAndType" parameterType="java.util.Map" resultType="java.util.Map">
	select  office.name as '所属机构',office.id,office.parent_id,
	<foreach collection="typeList" item="var" open="" close="" separator=",">
		sum(case when #{var} = a.${type} then 1 else 0 end) as #{var}
	</foreach>
	from pxpt_accident a join sys_office office on office.id=a.kindergarten_id
	<where>
	......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值