Mybatis批量插入数据返回主键的实现

网友投稿 289 2022-12-16


Mybatis批量插入数据返回主键的实现

响应效果(id为主键):

{

"data": [

{"studentName": "张三","classNo": "一班","id": 111},

{"studentName": "李四","classNo": "二班","id": 112},

{"studentName": "王五","classNo": "一班","id": 113}

]

}

控制层:

@PostMapping("/test")

@ResponseBody

public Map test(@RequestBody String data) {

Map resultMap = new HashMap();

//非空校验

if (!checkParams.checkString(data)) {

reshttp://ultMap.put("code", "1");

resultMap.put("msg", "参数为空。");

return resultMap;

}

//json转List>

JSONObject json= new JSONObject(data);

String dataString = json.get("data").toString();

com.google.gson.Gson gson = new Gson();

List> list = gson.fromJson(dataString, new com.google.common.reflect.TypeToken>>() {

}.getType());

//请求接口

resultMap=registerService.test(list);

return resultMap;

}

接口:

public Map test(List> data);

实现类:

@Override

public Map test(List> data) {

Map resultMap = new HashMap();

registerMapper.test( data);

resultMap.put("data",data);

return resultMap;

}

持久层:

public void test(List> list);

statement:

INSERT INTO student_info(student_name,class_no)VALUES

(

#{item.studentName},

#{item.classNo}

)

请求方式:

http://localhost/xxx/test

请求参数:

{

"data": [

{"studentName": "张三","classNo": "一班"},

{"studentName": "李四","classNo": "二班"},

{"studentName": "王五","classNo": "一班"}

]

}

注意事项:

statement中keyProperty的赋值是可以自定义的,如果将keyProperty的值改为key,即改成如下:

INSERT INTO student_info(student_name,class_no)VALUES

(

#{item.studentName},

#{item.classNo}

)

则响应效果(key为主键)如下:

{

"data": [

{"studentName": "张三","classNo": "一班","key": 111},

{"studentName": "李四","classNo": "二班","key": 112},

zUkNtcfSJ {"studentName": "王五","classNo": "一班","key": 113}

]

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot http请求注解@RestController原理解析
下一篇:Java数组索引异常产生及解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~