使用mybatis批量插入数据时回填主键自增ID的值

一、定义插入数据库的对象模型

package com.postgres.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 用户模型定义。
 */
@ApiModel(value = "用户模型")
@Data
public class User {

    /**
     * ID
     */
    @ApiModelProperty(value = "id", example = "-1")
    private int id = -1;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", example = "张三")
    private String name = "";
}

id对应的是数据库中的自增主键id。批量插入数据后,用数据库分配的id值回填该属性。

二、定义mapper层接口

package com.postgres.mapper;

import com.postgres.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {
    /**
     * 批量插入用户数据。
     *
     * @param userList
     */
    void insertUserV3(List userList);
}

userList参数不加@Param注解。

三、配置XML

    
        INSERT INTO t_user (name)
        VALUES
        
            (#{item.name})
        
    

注意:collection的值固定写为list。

你可能感兴趣的:(数据库,数据库应用)