文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MyBatis怎么进行双重foreach循环

2023-06-29 02:24

关注

这篇文章主要介绍MyBatis怎么进行双重foreach循环,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

进行双重foreach循环

mapname是一个Map<String,Map<String,Object>> 对象

<foreach collection="mapname" index="key1" item="value1" separator=",">    <foreach collection="value1" index="key2" item="value2" separator=",">        #{key1},        #{key2},        #{value2}    </foreach></foreach>

使用场景

比如说一个付款人下面对应的运单的金额,那么key1就是付款人编号,key2是运单编号,value2是分摊的金额 

mybatis foreach循环,传入多个参数

上代码

controller:

@RequestMapping(value = "/findPage", method = RequestMethod.POST)    @ResponseBody    public Object findPage(@RequestParam(required=false) String jobCategory,@RequestParam(required=false) String ids,@RequestParam(required=false) String cities) {        try {            List<Integer> listJob = new ArrayList<Integer>();            List<Integer> listIds = new ArrayList<Integer>();            List<String> listCities = new ArrayList<String>();            //按照城市名称和工种查询            if(StringUtils.isNotBlank(jobCategory) && StringUtils.isNotBlank(cities)){                String[] temp = jobCategory.split(",");                String[] cityTemp = cities.split(",");                for(int i=0;i<temp.length;i++){                    listJob.add(Integer.valueOf(temp[i]));                }                for(int i=0;i<cityTemp.length;i++){                    listCities.add(cityTemp[i]);                }                List<WebsitesJob> list = jobService.findPage(listJob, listIds, listCities);                return new ExtGridReturn(list.size(), list);            }            //按照工种查询            if(StringUtils.isNotBlank(jobCategory)){                String[] temp = jobCategory.split(",");                for(int i=0;i<temp.length;i++){                    listJob.add(Integer.valueOf(temp[i]));                }            }            //按照职位名称查询            if(StringUtils.isNotBlank(ids)){                String[] temp = ids.split(",");                for(int i=0;i<temp.length;i++){                    listIds.add(Integer.valueOf(temp[i]));                }            }            //按照城市查询            if(StringUtils.isNotBlank(cities)){                String[] temp = cities.split(",");                for(int i=0;i<temp.length;i++){                    listCities.add(temp[i]);                }            }            List<WebsitesJob> list = jobService.findPage(listJob, listIds, listCities);            return new ExtGridReturn(list.size(), list);        } catch (Exception e) {            LOGGER.error("分页获取信息出错", e);            return new ExceptionReturn(e);        }    }

mapper

    List<WebsitesJob> findPage(@Param("jobCategorys") List<Integer> jobCategorys,@Param("ids") List<Integer> ids,@Param("workPlace") List<String> workPlace);

xml

<!-- 前台查询列表 -->   <select id="findPage" resultType="cn.edu.hbcf.plugin.websites.pojo.WebsitesJob">           select n.ID id,              n.NAME name,              n.WORKPLACE workPlace,              n.JOBCATEGORY jobCategory,              n.SALARY salary,              n.RESPONSIBILITIES responsibilities,              n.REQUIREMENTS requirements,              n.ISHOT isHot,              n.UPDATEDATE updateDate,              n.UPDATEUSER updateUser,              u.real_name updateName         from websites_job n         left join base_users u on n.updateUser = u.account         <where>             <if test="jobCategorys.size()!=0">                 or    n.jobCategory in                   <foreach collection="jobCategorys" index="index" item="item" open="(" separator="," close=")">                    #{item}                </foreach>            </if>            <if test="ids.size()!=0">                or n.id in                   <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">                    #{item}                </foreach>             </if>             <if test="workPlace.size()!=0">                or n.WORKPLACE in                   <foreach collection="workPlace" item="item" index="index" open="(" separator="," close=")">                    #{item}                </foreach>             </if>         </where>         order by n.ISHOT,n.ID desc   </select>

以上是“MyBatis怎么进行双重foreach循环”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯