• Mybatis中的foreach


    foreach一共有List,array,Map三种类型的使用场景。
    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。
        item表示集合中每一个元素进行迭代时的别名,
        index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,
        open表示该语句以什么开始,
        separator表示在每次进行迭代之间以什么符号作为分隔 符,
        close表示以什么结束。
    1.List类型插入:
     
    <insert id="batchInsertClientDeviceList" parameterType="java.util.List" >
        INSERT INTO t_client_device_list (order_no,mac_id,client_code,status,order_time)
        <foreach collection="list" item="item" index="index" separator="union all">
             select #{item.orderNo, jdbcType=VARCHAR},#{item.macId, jdbcType=VARCHAR}
             from dual
        </foreach>
    </insert>
    1.1 List类型查询:
     
    <select id="getClientDeviceList" parameterType="java.util.List" resultType="Device">
        select * from t_devices where id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    2.参数array类型查询:
     
    <select id="getClientDeviceList" parameterType="java.util.ArrayList" resultType="Device">
         select * from t_devices where id in
         <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
              #{item}
         </foreach>
    </select>   
    3.参数Map类型查询:
     
    map中存放了一个元素key为ids,value为List<String>用于id in的条件
     
    <select id="getClientDeviceList" parameterType="java.util.HashMap" resultType="Device">
        select * from t_devices where mac like "%"#{mac}"%" and id in
        <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
  • 相关阅读:
    汇编10:CALL和RET指令
    汇编09:转移指令的原理
    汇编08:数据处理的两个基本问题
    汇编07:定位内存地址的方法
    汇编06:包含多个段的程序
    汇编05:[BX]和loop指令
    汇编04:第一个汇编程序
    汇编03:寄存器
    C#版的mongodb最新的官方驱动2.4.0版本
    如何教你看懂复杂的正则表达式
  • 原文地址:https://www.cnblogs.com/lemperor/p/16427234.html
Copyright © 2020-2023  润新知