一、定义插入数据库的对象模型
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<User> userList);
}
userList参数不加@Param注解。
三、配置XML
<insert id="insertUserV3" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
INSERT INTO t_user (name)
VALUES
<foreach item="item" collection="list" separator=",">
(#{item.name})
</foreach>
</insert>
注意:collection的值固定写为list。