mybaits批量插入 动态赋值某一列,其他列为固定值

例如:同一个用户id,新增不同的项目,项目id是一个数组,可以将用户id,项目id数组分别存入一个map中,然后再mybatis中循环项目id数组

service层:
public int addXmxx(String ids,Long userId) {
    HashMap map = new HashMap<>();
    map.put("xmids", Convert.toStrArray(ids));  --封装的方法,将前台传来的字符串,转成字符串数组
    map.put("userId",userId);
   --若是多个列都是固定值,直接 map.put 即可
    return jdyhSqMapper.addXmxx(map);
}
dao层:
public int addXmxx(Map map);
数据库为Mysql:

mybatis:

    insert into jdyhsqb(xmid,user_id) values
    
        (#{xmid},#{userId})
    

数据库为Oracle
mybatis:

    insert all
    
        into jdyhsqb(xmid,user_id) values (#{xmid},#{userId})
    
    select 1 from dual 

 

注:标签中的collection属性的值,要与map中的key对应

你可能感兴趣的:(mybatis)