Mybatis 动态SQL批量插入(有则更新无则插入)

本文介绍了一种使用MyBatis进行MySQL数据库批量动态插入的方法,并详细解释了如何实现有则更新无则插入的功能。通过示例代码展示了具体的XML配置及可能遇到的问题与解决办法。
部署运行你感兴趣的模型镜像

mysql动态批量插入(有则更新无则插入)

在之前的文章中已经写过批量插入,这个再专门写一遍;

<insert id="batchAddRecomprodInto" parameterType="java.util.List" >
    replace into td_cc_recomprod(act_id, pro_id, start_date,
    pro_nm, pro_explain, link_ref,
    show_order, pic_location, end_date,
    update_staff_id, update_date, remark)
    VALUES
    <foreach collection="list" item="item" separator=",">
      (#{item.actId,jdbcType=BIGINT}, #{item.proId,jdbcType=VARCHAR}, #{item.startDate,jdbcType=TIMESTAMP},
      #{item.proNm,jdbcType=VARCHAR}, #{item.proExplain,jdbcType=VARCHAR}, #{item.linkRef,jdbcType=VARCHAR},
      #{item.showOrder,jdbcType=INTEGER}, #{item.picLocation,jdbcType=VARCHAR}, #{item.endDate,jdbcType=TIMESTAMP},
      #{item.updateStaffId,jdbcType=VARCHAR}, #{item.updateDate,jdbcType=TIMESTAMP}, #{item.remark,jdbcType=VARCHAR}
      )
    </foreach>
  </insert>

 

 

item:为数组每个元素的名称,名称随意定义,之后每条数据从便利的集合里面取

 

有时候报找不到参数的,可能是循环写的不对,或者参数取值写的有问题,或者参数类型写错了,测试类很好写,这里也贴一下把:

 

Mapper文件:

 

int batchAddRecomprodInto(List<TdCcRecomprod> record);

测试类就不写了,

pojo放在list里面,调一下就行了;

主要想说一下参数怎么用:

item.actId,

别写错了,Mybatis 有时候报错不准确,改起来很麻烦;

 

 

 

 

 

 

 

 

Caused by: org.apache.ibatis.binding.BindingException: Parameter 'actId' not found. Available parameters are [collection, list]

 

比如有时候会报上面这个错,基本上就是这样,取参数的时候方法错了;

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值