两张数据库表实现批量插入
我们现在有两张表第一个是Goods表,里面存放商品信息,第二个是消费记录表ConsumptionInfo,里面存放消费的记录,现在我想通过选择Goods的商品,可以选择一个或者多个,将它插入到消费表中。
代码如下:(我只写关键代码,import以及按钮等不再赘述)
前台vue:
//handleAdd就是我们要点击的按钮执行的方法
handleAdd(row) {
//获取ids
const ids = row.id || this.ids;
console.log(ids + "IDs");
//这块可以动态获取手牌号,我这块默认为001
const handid = '001';
//执行getgoods方法将ids, handid传递过去
//具体怎么通过js传递到后台,我在前后端传值的文章里最后一个方式已经写了
getgoods(ids, handid).then(response => {
// ...
});
this.getinfoList();
},
后台:
@PostMapping(value = "/goods/{handid}")
public AjaxResult getInfo(@PathVariable("handid") String handid,@RequestBody Integer[] ids) {
//上面两行也已经解释了,主要逻辑为for循环的操作
// for (int i:ids)循环取出ids数组的每一个id
for (int i:ids){
//通过goodsService.selectGoodsById(i);去查id为i的数据,返回给list
Goods list= goodsService.selectGoodsById(i);
//在创建一个名为 consumptionInfo 的对象,这个对象是基于 ConsumptionInfo 类型创建的。
ConsumptionInfo consumptionInfo=new ConsumptionInfo();
//在 consumptionInfo设置它的属性,本质就是增加功能
consumptionInfo.setGoodsName(list.getGoodsName());
consumptionInfo.setPrice(list.getPrice());
consumptionInfo.setHandName(String.valueOf(handid));
// 设置完成后执行 consumptionInfoService.insertConsumptionInfo(consumptionInfo);就是consumptionInfo对象返回给insertConsumptionInfo方法,实现sql语句,将数据插入到数据库
consumptionInfoService.insertConsumptionInfo(consumptionInfo);
}
return success();
}
通过以上代码即可实现批量插入功能。