• mybatis动态sql中foreach标签的使用


    foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下:

      <delete id="deleteBatch"> 

        delete from user where id in

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

          #{id}

        </foreach>

      </delete>

      我们假如说参数为----  int[] ids = {1,2,3,4,5}  ----那么打印之后的SQL如下:

      delete form user where id in (1,2,3,4,5)

      释义:

        collection :collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array

        item : 表示在迭代过程中每一个元素的别名

        index :表示在迭代过程中每次迭代到的位置(下标)

        open :前缀

        close :后缀

        separator :分隔符,表示迭代时每个元素之间以什么分隔

    我们通常可以将之用到批量删除、添加等操作中。

    再比如

    查询:

    <!-- 获取商户对账单的fileId -->
    <select id="getBillInfoList" resultType="com.wondersgroup.soa.dto.bill.BillInfoEntity">
    select *
    from t_mer_file_mer_info
    where batchNo in
    <foreach collection="list" item="batchNo" index="index"
    open="(" close=")" separator=",">
    #{batchNo}
    </foreach>
    </select>

    插入:

    <insert id="batchinsertSelective" parameterType="tPortalAdjunctEntity" >
    insert into t_portal_adjunct (merno, type,type_id, file_id, file_name)
    values
    <foreach collection ="list" item="info" index= "index" separator =",">
    (#{info.merno}, #{info.type},
    #{info.type_id}, #{info.file_id}, #{info.file_name})
    </foreach >
    </insert>

  • 相关阅读:
    git学习,git上建立自己的项目
    springframework3.2源码下载导入eclipse
    git学习
    java事件处理机制(自定义事件)
    quartz scheduler 2.16 之集群
    博客总目录(2007.11.12 2010.4.25)
    JS中json数据的处理
    (转载)JAVA线程池管理
    查到的一些发送邮件代码的链接
    layui时间控件,获取页面选中的时间值。
  • 原文地址:https://www.cnblogs.com/jianzhixuan/p/6434589.html
Copyright © 2020-2023  润新知