Mybatis批量插入

注意:以下写法是基于RuoYi-Vue版进行处理。

1.mybatis配置文件中SQL语句

<insert id="insertBatch" parameterType="list">
        insert into thirty_four_month_one_first (id, parent_id, list_name, list_value, level, indate, modify_date)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.id},#{item.parentId},#{item.listName},#{item.listValue},#{item.level},#{item.indate},#{item.modifyDate})
        </foreach>
    </insert>

解析:

参数类型:List集合

 Sql语句: insert into 表名 (字段名)values  <foreach> (占位符进行对应赋值) </foreach>

2. Mapper接口中的抽象方法

/**
     * 批量插入数据
     * @param list
     * @return
     */
    public int insertBatch(List<ThirtyFourReportFirst> list);

3. Service层对数据进行转化

  /**
     * 数据提交
     * @param list
     * @return
     */
    @Override
    public Object submit(String list)
    {
        List<ThirtyFourReportFirst> fourReport = JSONObject.parseArray(list, ThirtyFourReportFirst.class);
        
        // 清除表中所有记录
        thirtyFourReportFirstMapper.cleanThirtyFourReportFirst();
        return thirtyFourReportFirstMapper.insertBatch(fourReport);
    }

解析: 

JSONObject.parseArray: 我前端页面的写法是将数据转化成JSON串的形式进行传递到后台,这里我将使用JSONObject的方法将数据封装到对应的集合中。

4. Controller层拦截请求

/**
     * 提交数据
     * @param list
     * @return
     */
    @PostMapping("/submitData")
    public AjaxResult submitListData(@RequestParam(value = "list",required = false) String list)
    {
        return AjaxResult.success(thirtyFourReportFirstService.submit(list));
    }

5. api 中 .js文件 请求的方法

// 数据提交
export function submitData(params) {
  return request({
    url: '/thirtyFour/first/submitData',
    method: 'post',
    headers: {    // 注意:此处的headers需要加上,否则后台接收不到传递参数
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    data: params
  })
}

6.  .vue文件

/** 提交按钮 */
      submitForm() {
        this.$refs["form"].validate(valid => {
          if (valid) {
            
            //对数据进行Json处理
            var postData = new URLSearchParams();
            postData.append('list',JSON.stringify(this.thirtyFourSubmitList));

            submitData(postData).then(response => {
              this.msgSuccess("成功");
              this.getList();
            });
          }
        });
      },

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空心蔬菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值