使用Mybatis怎么批量插入数据并返回主键

这篇文章将为大家详细讲解有关使用Mybatis怎么批量插入数据并返回主键,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为乌拉特中企业提供专业的网站建设、做网站乌拉特中网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

响应效果(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)) {
  resultMap.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},
    {"studentName": "王五","classNo": "一班","key": 113}
  ]
}

关于使用Mybatis怎么批量插入数据并返回主键就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站题目:使用Mybatis怎么批量插入数据并返回主键
标题链接:http://hbruida.cn/article/jdicog.html