mybatis批量操作个人总结(常用)

1.批量插入
mybatis通过foreach循环拼接好sql语句。
第一种
如果传入的是单参数且参数类型是一个List的时候

      @Override
    public void insertCommunityPoiBatch(List<PageData> list) {
        try {
            dao.save("ClCommunityPoiMapper.insertCommunityPoiBatch", list);
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }
    }
    <insert id="insertCommunityPoiBatch" parameterType="java.util.List">
        INSERT INTO cl_community_poi (
        id,
        poi_id,
        community_id,
        poi_name
        ) VALUES
        <foreach collection="list" index="index" item="item" separator=",">
            (#{item.id},
            #{item.poiId},
            #{item.communityId}
            )
        </foreach>
    </insert>

第二种
如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map
PageData是内部封装的,相当于一个Map

    @Override
    public void insertClAdArrangedConditionMutexBatch(PageData pageData) {
        try {
            dao.update("ClAdArrangedConditionMapper.insertClAdArrangedConditionMutexBatch", pageData);
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }
    }
      <insert id="insertClAdArrangedConditionMutexBatch" parameterType="pd">
    insert into cl_ad_arranged_condition_mutex 
	(mutex_id,condition_id,mutex_type,mutex_condition_id)
	values
    <foreach collection="conditionMutexList" item="item" index="index" separator=",">
      (#{item.mutexId},#{item.conditionId},#{item.mutexType},#{item.mutexConditionId})
    </foreach>
  </insert>

2.批量更新
第一种
需要在db链接url后面带一个参数 &allowMultiQueries=true
即: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&allowMultiQueries=true
如果传入的是单参数且参数类型是一个List的时候

   @Override
    public int updPptTemplateElementBatch(List<PageData> list) {
        int i = 0;
        try {
            i = (int) dao.update("SupplierOrderMapper.updPptTemplateElementBatch", list);
        } catch (Exception e) {
            logger.error(e.toString(), e);
        }
        return i;
    }
     <update id="updPptTemplateElementBatch" parameterType="java.util.List">
        <foreach collection="list" item="item" index="index" open="" close="" separator=";">
            update install_ppt_template_element
            <set >
                <if test="item.elementCode != null" >
                    element_code = #{item.elementCode,jdbcType=VARCHAR},
                </if>
                <if test="item.elementName != null" >
                    element_name = #{item.elementName,jdbcType=VARCHAR},
                </if>
            </set>
            where template_id = #{item.templateId,jdbcType=VARCHAR}
        </foreach>
    </update>
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值