用法
批量插入返回自增ID列表和普通插入返回自增ID是一样的,通常只需要在 mapper.xml 的
public interface UserMapper {
/**
* 批量插入
* @param users
*/
void batchInsert(List<User> users);
}
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
INSERT INTO `user`
(
username, nickname, password, email,
avatar, status, created_time, created_by,
updated_time, updated_by
)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.username}, #{item.nickname}, #{item.password}, #{item.email},
#{item.avatar}, #{item.status}, #{item.createdTime}, #{item.createdBy},
#{item.updatedTime}, #{item.updatedBy}
)
</foreach>
</insert>
注意
关于这个批量导入返回id列表需要注意以下几点
- 确保 mybatis 版本在 3.3.1 以上
- batchInsert 方法上不能加 @param()
- batchInsert 方法只能一个参数
- batchInsert 返回值为 Integer 或 void,不能写 List
- 如果你的自增id数据库字段和实体类属性不一致,如 user_id 和 userId, 需要写成useGeneratedKeys=”true” keyColumn=”user_id” keyProperty=”userId”