欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis批量插入數(shù)據(jù)返回主鍵的實(shí)現(xiàn)

 更新時(shí)間:2020年01月20日 15:56:34   作者:陳天相  
這篇文章主要介紹了Mybatis批量插入數(shù)據(jù)返回主鍵的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

響應(yīng)效果(id為主鍵):

{
  "data": [
    {"studentName": "張三","classNo": "一班","id": 111},
    {"studentName": "李四","classNo": "二班","id": 112},
    {"studentName": "王五","classNo": "一班","id": 113}
  ]
}

控制層:

    @PostMapping("/test")
 @ResponseBody
 public Map<String, Object> test(@RequestBody String data) {
 Map<String, Object> resultMap = new HashMap<String, Object>();
        //非空校驗(yàn)
 if (!checkParams.checkString(data)) {
  resultMap.put("code", "1");
  resultMap.put("msg", "參數(shù)為空。");
  return resultMap;
 }
        //json轉(zhuǎn)List<Map<String, Object>>
 JSONObject json= new JSONObject(data);
 String dataString = json.get("data").toString();
 com.google.gson.Gson gson = new Gson();
  List<Map<String, Object>> list = gson.fromJson(dataString, new   com.google.common.reflect.TypeToken<List<Map<String, Object>>>() {
  }.getType());
        //請(qǐng)求接口
 resultMap=registerService.test(list);
 return resultMap;
 }

接口:

public Map<String, Object> test(List<Map<String,Object>> data);

實(shí)現(xiàn)類:

    @Override
 public Map<String, Object> test(List<Map<String,Object>> data) {
 Map<String, Object> resultMap = new HashMap<String, Object>();
 registerMapper.test( data);
 resultMap.put("data",data);
 return resultMap;
 }

持久層:

    public void test(List<Map<String,Object>> list);

statement:

    <!-- =========================批量插入返回主鍵示例======================== -->
 <insert id="test" parameterType="list" useGeneratedKeys="true" keyProperty="id" >
 INSERT INTO student_info(student_name,class_no)VALUES
 <foreach collection="list" item="item" separator=",">
  (
  #{item.studentName},
  #{item.classNo}
  )
 </foreach>
 </insert>

請(qǐng)求方式:

http://localhost/xxx/test

請(qǐng)求參數(shù):

{
  "data": [
    {"studentName": "張三","classNo": "一班"},
    {"studentName": "李四","classNo": "二班"},
    {"studentName": "王五","classNo": "一班"}
  ]
}

注意事項(xiàng):

statement中keyProperty的賦值是可以自定義的,如果將keyProperty的值改為key,即改成如下:

    <!-- =========================批量插入返回主鍵示例======================== -->
 <insert id="test" parameterType="list" useGeneratedKeys="true" keyProperty="key" >
 INSERT INTO student_info(student_name,class_no)VALUES
 <foreach collection="list" item="item" separator=",">
  (
  #{item.studentName},
  #{item.classNo}
  )
 </foreach>
 </insert>

則響應(yīng)效果(key為主鍵)如下:

{
  "data": [
    {"studentName": "張三","classNo": "一班","key": 111},
    {"studentName": "李四","classNo": "二班","key": 112},
    {"studentName": "王五","classNo": "一班","key": 113}
  ]
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java注解結(jié)合aspectj AOP進(jìn)行日志打印的操作

    java注解結(jié)合aspectj AOP進(jìn)行日志打印的操作

    這篇文章主要介紹了java注解結(jié)合aspectj AOP進(jìn)行日志打印的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java合并兩個(gè)相同的List集合的四種方法解析

    Java合并兩個(gè)相同的List集合的四種方法解析

    這篇文章主要給大家介紹了關(guān)于Java合并兩個(gè)相同的List集合的四種方法,在Java編程中常需合并兩個(gè)List,常用addAll()方法,簡(jiǎn)單高效,Java8起可用Stream的concat()方法,并發(fā)場(chǎng)景下,CopyOnWriteArrayList類保證線程安全,Collections.union()合并且去重,需要的朋友可以參考下
    2024-10-10
  • 如何解決異步任務(wù)上下文丟失問題

    如何解決異步任務(wù)上下文丟失問題

    在多線程編程中,異步任務(wù)可能會(huì)導(dǎo)致上下文信息丟失,為了解決這個(gè)問題,可以在執(zhí)行異步任務(wù)前,通過自定義TaskDecorator拷貝主線程的上下文至子線程,這樣可以確保上下文在異步執(zhí)行過程中得以保留,將定制的TaskDecorator設(shè)置至線程池,可以有效地解決上下文丟失問題
    2024-09-09
  • Eclipse自定義啟動(dòng)畫面和圖標(biāo)的方法介紹

    Eclipse自定義啟動(dòng)畫面和圖標(biāo)的方法介紹

    這篇文章主要介紹了Eclipse自定義啟動(dòng)畫面和圖標(biāo)的方法介紹,以及一些eclipse的快捷鍵,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • springboot整合xxl-job的實(shí)現(xiàn)示例

    springboot整合xxl-job的實(shí)現(xiàn)示例

    本文主要介紹了springboot整合xxl-job的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Springboot添加支付接口

    Springboot添加支付接口

    這篇文章主要介紹了springboot如何添加支付接口,幫助大家更好得理解和學(xué)習(xí)使用springboot框架,感興趣的朋友可以了解下
    2021-04-04
  • 基于JWT實(shí)現(xiàn)SSO單點(diǎn)登錄流程圖解

    基于JWT實(shí)現(xiàn)SSO單點(diǎn)登錄流程圖解

    這篇文章主要介紹了基于JWT實(shí)現(xiàn)SSO單點(diǎn)登錄流程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringMVC視圖作用詳解

    SpringMVC視圖作用詳解

    這篇文章主要介紹了springMVC中的視圖與視圖解析器,springMVC視圖的種類很多,默認(rèn)有轉(zhuǎn)發(fā)視圖和重定向視圖,本文就每一種視圖給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-11-11
  • Redisson公平鎖的源碼解讀分享

    Redisson公平鎖的源碼解讀分享

    Redisson是一個(gè)在Redis的基礎(chǔ)上實(shí)現(xiàn)的Java駐內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory?Data?Grid)。這篇文章主要通過源碼和大家聊聊Redisson公平鎖,需要的可以了解一下
    2022-11-11
  • 如何在Java中實(shí)現(xiàn)一個(gè)散列表

    如何在Java中實(shí)現(xiàn)一個(gè)散列表

    這篇文章主要介紹了如何在Java中實(shí)現(xiàn)一個(gè)散列表,建一個(gè)HashMap,以String類型為Key,Int類型為Value,下文具體的操作過程需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論