mybatis insert 插入多条数据

原文链接:https://blog.csdn.net/qq_20009015/article/details/85041590

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>

上一篇:myBatis中实用技巧


下一篇:Mybatis中updateByPrimaryKeySelective和updateByPrimaryKey区别