zoukankan      html  css  js  c++  java
  • mybatis的xml中sql语句中in的写法(迭代遍历)

    这里使用 foreach标签


    <foreach  item="item" collection="listTag" index="index"  open="(" separator="," close=")">

    #{item}

    </foreach>


    foreach元素的属性主要有 item,index,collection,open,separator,close。

    item表示集合中每一个元素进行迭代时的别名.

    index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.

    open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.

    close表示以什么结束.

    1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

    <select id="addList" resultType="map">

    select * from tp_trade where  id in 

    <foreach  item="item" collection="list" index="index"  open="(" separator="," close=")">#{item}</foreach>

    </select>

    传入参数的代码为:

    List<Object>  addList(List<Object> ids);

    2.如果传入的是单参数且参数类型是一个Array数组的时候,collection属性值为array


    <select id="addArray" resultType="map">

    select * from tp_trade where  tt_type in 

    <foreach  item="item" collection="array" index="index"  open="(" separator="," close=")">#{item}</foreach>

    </select>

    传入的参数代码为:
    List<Object> addArray(String[]  ids);

    3.如果多个参数,我们会封装成map类型,然后在把需要遍历的list或者array封装到map中。

    传入的参数代码为:

    String str = "1,2,3,4";

    Map  map = new HashMap();

    map.put("type",str.spit(","));

    再把封装好map传入到方法中。

    List<Object> addMap(Map<String,Object> map);


    <select id="addMap" resultType="map">

    select * from tp_trade where  type in 

    <foreach  item="item" collection="type" index="index"  open="(" separator="," close=")">#{item}</foreach>

    </select>

    type就是数组集合,使用item遍历即可。

  • 相关阅读:
    教你一招Linux下文本比对方法
    Linux下find与exec的联手干大事
    Linux下Shell日期的格式,你知道几种?
    Linux下Python3.6的安装及避坑指南
    多线程中使用CompletableFuture
    ElasticSearch7.6.2中语法使用(更新中)
    ElasticSearch7.6.2使用_update_by_query语法
    ElasticSearch7.6.2使用_delete_by_query产生版本冲突问题
    filebeat7.6.2进程运行一段时间后自动退出问题解决
    把本地项目提交到gitLab
  • 原文地址:https://www.cnblogs.com/SmallStrange/p/13168900.html
Copyright © 2011-2022 走看看