• 批量插入,批量修改的sql


    sql 1  批量插入

    <insert id="batchInsert" useGeneratedKeys="true" parameterType="java.util.List" >
    <selectKey resultType="long" keyProperty="id" order="AFTER">
    SELECT
    LAST_INSERT_ID()
    </selectKey>
    insert into user_contacts_info (id,user_id,old_id,cont_type,
    cont_ship, cont_status, cont_source,
    cont_user_name, cont_id_card, cont_mobile1,
    cont_mobile2, cont_mobile3, cont_tell,
    cont_addr, cont_addr_hk, cont_addr_com,
    cont_tell_com, e_mail, remark, create_time,
    cont_name_com,update_time)
    values
    <foreach collection="list" item="item" index="index" separator="," >
    (#{item.id,jdbcType=INTEGER},#{item.userId,jdbcType=INTEGER},#{item.oldId,jdbcType=INTEGER}, #{item.contType,jdbcType=VARCHAR},
    #{item.contShip,jdbcType=VARCHAR}, #{item.contStatus,jdbcType=VARCHAR}, #{item.contSource,jdbcType=VARCHAR},
    #{item.contUserName,jdbcType=VARCHAR}, #{item.contIdCard,jdbcType=VARCHAR}, #{item.contMobile1,jdbcType=VARCHAR},
    #{item.contMobile2,jdbcType=VARCHAR}, #{item.contMobile3,jdbcType=VARCHAR}, #{item.contTell,jdbcType=VARCHAR},
    #{item.contAddr,jdbcType=VARCHAR}, #{item.contAddrHk,jdbcType=VARCHAR}, #{item.contAddrCom,jdbcType=VARCHAR},
    #{item.contTellCom,jdbcType=VARCHAR},#{item.eMail,jdbcType=VARCHAR}, #{item.remark,jdbcType=VARCHAR},
    #{item.createTime,jdbcType=TIMESTAMP}, #{item.contNameCom,jdbcType=VARCHAR},
    #{item.updateTime,jdbcType=TIMESTAMP})
    </foreach>
    </insert>

    sql 2 批量插入,表设置为主键自增长
    <insert id="insertByBatch" parameterType="java.util.List">
    insert into monitor_log
    (monitor_id, monitor_date, monitor_stats,
    monitor_info,
    monitor_product_id, monitor_repair_date,
    monitor_repair_userid)
    values
    <foreach collection="list" item="item" index="index"
    separator=",">
    (#{item.monitorId,jdbcType=INTEGER},
    #{item.monitorDate,jdbcType=TIMESTAMP},
    #{item.monitorStats,jdbcType=TINYINT},
    #{item.monitorInfo,jdbcType=VARCHAR},
    #{item.monitorProductId,jdbcType=INTEGER},
    #{item.monitorRepairDate,jdbcType=TIMESTAMP},
    #{item.monitorRepairUserid,jdbcType=INTEGER})
    </foreach>
    </insert>

    sql 3 批量修改
     <update id="updateBatch" parameterType="java.util.List">
    update monitor_log
    <trim prefix="set" suffixOverrides=",">
    <trim prefix="monitor_date =case" suffix="end,">
    <foreach collection="list" item="item" index="index">
    <if test="item.monitorDate !=null ">
    when monitor_id=#{item.monitorId} then #{item.monitorDate,jdbcType=TIMESTAMP}
    </if>
    </foreach>
    </trim>
    <trim prefix="monitor_stats =case" suffix="end,">
    <foreach collection="list" item="item" index="index">
    <if test="item.monitorStats !=null ">
    when monitor_id=#{item.monitorId} then #{item.monitorStats,jdbcType=TINYINT}
    </if>
    </foreach>
    </trim>
    <trim prefix="monitor_info =case" suffix="end,">
    <foreach collection="list" item="item" index="index">
    <if test="item.monitorInfo !=null ">
    when monitor_id=#{item.monitorId} then #{item.monitorInfo,jdbcType=VARCHAR}
    </if>
    </foreach>
    </trim>
    <trim prefix="monitor_product_id =case" suffix="end,">
    <foreach collection="list" item="item" index="index">
    <if test="item.monitorProductId !=null ">
    when monitor_id=#{item.monitorId} then #{item.monitorProductId,jdbcType=INTEGER}
    </if>
    </foreach>
    </trim>
    where monitor_id in
    <foreach collection="list" index="index" item="item"
    separator="," open="(" close=")">
    #{item.monitorId,jdbcType=BIGINT}
    </foreach>
    </update>


  • 相关阅读:
    Asp.net 中 OnClientClick 与 OnClick 的区别
    WPF + RDLC + Tablix动态生成列 + 表头合并
    统计表用于查询效果太差的情况
    TeamView WaitforConnectFailed错误原因
    瞄到BindingGroup用法
    最讨厌工作时候百度的信息
    Lambda获取类属性的名字
    附加属性作用于多选控件,用于获取所有选中项
    文件夹图标错落解决方案
    WPF Line 的颜色过度动画
  • 原文地址:https://www.cnblogs.com/zhaoblog/p/7521532.html
Copyright © 2020-2023  润新知