springboot项目实现批量新增功能
首先是mybatis中的批量新增sql语句。
注意:这里我给的是我需要新增的字段,你们改成你们需要的字段。
<insert id="insertBatch" >
insert into hm_authorization (ID,ROLE_CODE,RES_TYPE_CODE,RES_CODE)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id},#{item.roleCode},#{item.resTypeCode},#{item.resCode})
</foreach>
</insert>
1
2
3
4
5
6
7
然后直接上Controller层接口。
注意:这里我的类上写的注解是@RestController,如果你们写的是@Controller,别忘了在方法上加@ResponseBody。
解释一下该代码:List泛型里边放你们自己对象,JSON.parseArray是fastjson包中的方法。附上jar包的maven引用。
这里我的方法可能有些笨,不过实现最重要。一开始我也尝试用list接收,但是接收不了。百度出来各种方法感觉都是闲扯淡。反正我用不了。
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
1
2
3
4
5
6
@PostMapping(value = "addbatch")
public ResultVo addBatch(@RequestParam String data){
System.out.println(data);
String strlist = data;
List<AuthVo> array = JSON.parseArray(strlist,AuthVo.class);
return authorizationService.insertBatch(array);
}
1
2
3
4
5
6
7
8
然后是前端的处理问题
//前端我是用的表格,选中直接获取了数组。如果你们不能直接获取数组,
//先把数据进行遍历为一个数组。至于怎么遍历,百度吧。
//确定你的数据是数组的格式后,把数据转为json格式。就行了。
//监听表格复选框选择
$("#add").on('click', function (http://www.my516.com) {
//table.on('checkbox(useruv)', function(obj) {
var checkStatus = table.checkStatus('LAY_table_user');
var obj = checkStatus.data;
var info = JSON.stringify(obj);
console.log(info);
$.ajax({
type: "post",
url: "addbatch",
data: "data="+info,
dataType: "json",
success: function (d) {
if (d.code == 1) {
layer.msg("新增成功", {
icon: 6
});
} else {
layer.msg("新增失败", {
icon: 5
});
}
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
---------------------