https://blog.csdn.net/qq_20009015/article/details/85041590
普通sql中insert插入多条
insert into 表名(字段名1,字段名2)values(值a1,值b1), (值a2,值b2),
例如:
insert into user_info (user_account,user_name,user_age,user_class) values (‘00001’, '张三 ',‘20’,‘计算机系’), (‘00002’, ‘李四’,‘19’,‘计算机系’);
在values中用括号分隔开多条即可
因此在mybatis中 也是用foreach拼出来这种
在mapper.java中 接口
int insertBatch(@Param(“capitalDetailDOList”) List capitalDetailDOList);
要注意这个注解param 必须是
import org.apache.ibatis.annotations.Param;
不然无法找到该参数
然后把foreach里面的值设置为parm里面的命名
正确的写法应该是
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO t_capital_detail
(
batch_no, organize_id, organize_name
)VALUES
<foreach collection="capitalDetailDOList" index="index" item="capitalDetailDO" separator="," >
(
#{capitalDetailDO.batchNo,jdbcType=VARCHAR}, #{capitalDetailDO.organizeId,jdbcType=BIGINT}, #{capitalDetailDO.organizeName,jdbcType=VARCHAR},
)
</foreach>