mybatis批量插入后获取自增主键
批量插入返回自增ID列表和普通插入返回自增ID是一样的,通常只需要在 mapper.xml 的上添加属性 useGeneratedKeys=“true” keyProperty=“id” 就能实现插入成功后,mybatis 会把获得的自增ID set 到对象里,如自动 set 到 user 对象的 id 属性里,而非通过返回值获得ID或ID列表。Daovoid insertBatch(List&l
批量插入返回自增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”
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)