springboot项目实现批量新增功能
程序员文章站
2022-04-29 18:02:28
这个困扰我一整天东西,终于解决了。 首先是mybatis中的批量新增sql语句。 注意:这里我给的是我需要新增的字段,你们改成你们需要的字段。 然后直接上Controller层接口。 注意:这里我的类上写的注解是@RestController,如果你们写的是@Controller,别忘了在方法上加@ ......
这个困扰我一整天东西,终于解决了。
首先是mybatis中的批量新增sql语句。
注意:这里我给的是我需要新增的字段,你们改成你们需要的字段。
1 <insert id="insertbatch" > 2 insert into hm_authorization (id,role_code,res_type_code,res_code) 3 values 4 <foreach collection="list" item="item" index="index" separator=","> 5 (#{item.id},#{item.rolecode},#{item.restypecode},#{item.rescode}) 6 </foreach> 7 </insert>
然后直接上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 @postmapping(value = "addbatch") 2 public resultvo addbatch(@requestparam string data){ 3 system.out.println(data); 4 string strlist = data; 5 list<authvo> array = json.parsearray(strlist,authvo.class); 6 7 return authorizationservice.insertbatch(array); 8 }
然后是前端的处理问题
1 //前端我是用的表格,选中直接获取了数组。如果你们不能直接获取数组, 2 //先把数据进行遍历为一个数组。至于怎么遍历,百度吧。 3 //确定你的数据是数组的格式后,把数据转为json格式。就行了。 4 //监听表格复选框选择 5 $("#add").on('click', function () { 6 //table.on('checkbox(useruv)', function(obj) { 7 var checkstatus = table.checkstatus('lay_table_user'); 8 var obj = checkstatus.data; 9 var info = json.stringify(obj); 10 console.log(info); 11 $.ajax({ 12 type: "post", 13 url: "addbatch", 14 data: "data="+info, 15 datatype: "json", 16 success: function (d) { 17 if (d.code == 1) { 18 layer.msg("新增成功", { 19 icon: 6 20 }); 21 } else { 22 layer.msg("新增失败", { 23 icon: 5 24 }); 25 } 26 } 27 })