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

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

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

mybatis:
<insert id="addXmxx">
    insert into jdyhsqb(xmid,user_id) values
    <foreach collection="xmids" separator="," index="index" item="xmid" >
        (#{xmid},#{userId})
    </foreach>
</insert>
数据库为Oracle
mybatis:
<insert id="addXmxx">
    insert all
    <foreach collection="xmids" separator=" " index="index" item="xmid" >
        into jdyhsqb(xmid,user_id) values (#{xmid},#{userId})
    </foreach>
    select 1 from dual 
</insert>

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值