mybatis 批量插入返回多个主键,低版本有bug

12 篇文章 0 订阅

Mybatis批量插入返回多个主键

论坛有人有需求批量插入的时候返回多个对应的主键

热心的托尼老师就帮忙写了个例子测试。测试了两个Mybatis版本,低版本的不支持,大家注意了 。
<insert id="insertBatchInterest" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into xxxxx ( `uid`)
        values
        <foreach collection="list" item="item" index="index"
                 separator=",">
            (#{item.uid,jdbcType=INTEGER} )
        </foreach>
    </insert>
执行java 代码
@Test
    public void test() {
         List<CouponInterestPO> batchList = new ArrayList<>();
        CouponInterestPO po = new CouponInterestPO();
        po.setUid(111);
        batchList.add(po);
        po = new CouponInterestPO();
        po.setUid(222);
        batchList.add(po);
        couponInterestDao.insertBatchInterest(batchList);
        for (CouponInterestPO c : batchList) {
           LOG.info("返回主键====>"+c.getId());
        }
执行结果是可以,返回多个主键key

在这里插入图片描述
mybatis的3.4.1测试成功的,测试结果如上图

mybatis的3.27的版本是不支持的会报错,报

org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found.
Available parameters are [list]

测试例子可参考

如果对你有用麻烦点个👍,托尼谢谢大家了 。
有技术问题可以加我公众号都可以问我。扫一扫,升职加薪就是你。
在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值