zoukankan      html  css  js  c++  java
  • mybatis批量操作

    mybatis批量操作:

    批量保存:

    <insert id="batchInsertBeneficiary" parameterType="com.api.params.BeneficiaryParam" >
        insert into ins_beneficiary
        <trim prefix="(" suffix=")" suffixOverrides="," >
          id, reservation_id, channel_id, last_name, first_name, name, sex, identity_type,
          identity_no, identity_validate_date, benefit_order, benefit_proportion, relation,
          create_id, create_name, update_id, update_name
        </trim>
        VALUES
        <foreach collection="beneficiaryParamList" item="item" index="index" separator="," >
          <trim prefix="(" suffix=")" suffixOverrides="," >
            #{item.id,jdbcType=BIGINT}, #{item.reservationId,jdbcType=VARCHAR}, #{item.channelId,jdbcType=BIGINT},
            #{item.lastName,jdbcType=VARCHAR}, #{item.firstName,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR},
            #{item.sex,jdbcType=TINYINT}, #{item.identityType,jdbcType=TINYINT}, #{item.identityNo,jdbcType=VARCHAR},
            #{item.identityValidateDate,jdbcType=DATE}, #{item.benefitOrder,jdbcType=INTEGER}, #{item.benefitProportion,jdbcType=DECIMAL},
            #{item.relation,jdbcType=TINYINT}, #{item.createId,jdbcType=VARCHAR},
            #{item.createName,jdbcType=VARCHAR}, #{item.updateId,jdbcType=VARCHAR},
            #{item.updateName,jdbcType=VARCHAR}
          </trim>
        </foreach>
      </insert>

    批量保存解析出来的语句格式为:

    insert into 表名 (字段1,字段2) values (value1,value2)(value3,value4);

    批量更新:

    <update id="batchUpdateBeneficiary"  parameterType="com.api.params.BeneficiaryParam">
        update ins_beneficiary
        <trim prefix="set" suffixOverrides=",">
          <trim prefix="last_name =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.lastName}
            </foreach>
          </trim>
    
          <trim prefix="first_name =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.firstName}
            </foreach>
          </trim>
    
          <trim prefix="name =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.name}
            </foreach>
          </trim>
    
          <trim prefix="sex =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.sex}
            </foreach>
          </trim>
    
          <trim prefix="identity_type =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.identityType}
            </foreach>
          </trim>
    
          <trim prefix="identity_no =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.identityNo}
            </foreach>
          </trim>
    
          <trim prefix="identity_validate_date =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.identityValidateDate}
            </foreach>
          </trim>
    
          <trim prefix="relation =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.relation}
            </foreach>
          </trim>
    
          <trim prefix="benefit_order =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.benefitOrder}
            </foreach>
          </trim>
    
          <trim prefix="benefit_proportion =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.benefitProportion}
            </foreach>
          </trim>
    
          <trim prefix="update_id =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.updateId}
            </foreach>
          </trim>
    
          <trim prefix="update_name =case" suffix="end,">
            <foreach collection="beneficiaryParamList" item="item" index="index">
              when id=#{item.id} then #{item.updateName}
            </foreach>
          </trim>
        </trim>
        <where>
          <foreach collection="beneficiaryParamList" separator="or" item="item" index="index" >
            <trim prefix="(" suffix=")">
              <if test="item.id!=null and item.id!=''">
                id = #{item.id}
              </if>
            </trim>
          </foreach>
        </where>
      </update>

    批量更新解析出来的语句格式为:

    UPDATE ins_reservation_product_relation
    SET policy_amount = CASE
    WHEN insurance_code =?
    AND reservation_id =? THEN
        ?
    WHEN insurance_code =?
    AND reservation_id =? THEN
        ?
    END,
     policy_charge = CASE
    WHEN insurance_code =?
    AND reservation_id =? THEN
        ?
    WHEN insurance_code =?
    AND reservation_id =? THEN
        ?
    END
    WHERE
        1 = 1
    AND is_delete = 0 AND (
        reservation_id = ?
        AND insurance_code = ?
    )
    OR (
        reservation_id = ?
        AND insurance_code = ?
    )
  • 相关阅读:
    git操作
    计算天数
    web小结~2019.3.24
    数据统计值的计算+PYTHON
    python~序列类型及操作
    一个日期加上若干天后是什么日期
    完数与盈数
    分段函数
    求最大最小
    D进制的A+B
  • 原文地址:https://www.cnblogs.com/super-chao/p/8358139.html
Copyright © 2011-2022 走看看