批量插入返回自增ID列表和普通插入返回自增ID是一样的,通常只需要在 mapper.xml 的 上添加属性 useGeneratedKeys=“true” keyProperty=“id” 就能实现插入成功后,mybatis 会把获得的自增ID set 到对象里,如自动 set 到 user 对象的 id 属性里,而非通过返回值获得ID或ID列表

Dao

void insertBatch(List<User> users); // 批量插入

Mapper.xml

<insert id="insertBatch" useGeneratedKeys="true" keyColumn="user_id" keyProperty="userId" parameterType="java.util.List">
        insert into user
        (user_name, age)
        values
        <foreach collection="list" separator="," item="item">
            (
            #{item.userName, item.age}
            )
        </foreach>
    </insert>

需要注意

关于这个批量导入返回id列表需要注意以下几点
1、确保 mybatis 版本在 3.3.1 以上
2、batchInsert 方法上不能加 @param()
3、batchInsert 方法只能一个参数
4、batchInsert 返回值为 Integer 或 void,不能写 List
5、如果你的自增id数据库字段和实体类属性不一致,如 user_id 和 userId, 需要写成useGeneratedKeys=“true” keyColumn=“user_id” keyProperty=“userId”

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐