国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot中使用@Insert、@Update實現批量新增、更新

這篇具有很好參考價值的文章主要介紹了SpringBoot中使用@Insert、@Update實現批量新增、更新。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、使用@Insert批量新增

數據庫原始表數據
springboot批量新增,spring boot,java,junit

數據層接口

 // 批量新增
 @Insert("<script>" +
            "INSERT INTO userInfo" +
            "        (id,name,money)" +
            "        VALUES" +
            "        <foreach collection ='list' item='userInfo' separator =','>" +
            "            (#{userInfo.id}, #{userInfo.name}, #{userInfo.money})" +
            "        </foreach >" +
            "</script>")
    void insertUsers(@Param("list") List<userInfo> userInfos);

注意@Param(“l(fā)ist”) 引號中和foreach 中 collection 屬性值必須寫list,否則報錯。item屬性值寫實體類的類名,首字母必須小寫

接口測試:
由于在Apifox中是沒有對應List的數據類型因此需要我們自己手寫body形式 – json例如:

 [ 
    {  "id":4,
       "money":"102.3",
       "name":"XU"
       },
    {  "id":5,
        "money":"289.64",
       "name":"RC"
       }
        ] 

springboot批量新增,spring boot,java,junit

除了使用接口測試工具驗證,我們還可以編寫業(yè)務測試類進行測試:

package com.gy;

import com.gy.domain.userInfo;
import com.gy.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class test {
    @Autowired
    UserService userService;
    // 批量新增
    @Test
    public void test01(){
        List<userInfo> userInfos =new ArrayList<>();
        userInfos.add(new userInfo(4,"XU",102.3));
        userInfos.add(new userInfo(5,"RC",289.64));
        userService.insertUsers(userInfos);
    }
}

springboot批量新增,spring boot,java,junit

使用以上兩種方式均可進行測試驗證,此時數據均被批量新增成功?。?!
springboot批量新增,spring boot,java,junit

二、使用@Update批量更新

數據庫原始表數據見上圖

數據層接口:

// 批量更新
@Update("<script>" +
        "   <foreach collection ='list' item='userInfo' separator =';'>" +
        "update userInfo set name=#{userInfo.name},money=#{userInfo.money} where id=#{userInfo.id}" +
        "</foreach>" +
        "</script>")
void updateList(@Param("list") List<userInfo> userInfos);

測試類:

 // 批量修改
    @Test
    public  void test04(){
        List<userInfo> userInfos =new ArrayList<>();
        userInfos.add(new userInfo(3,"NPL",1251.2));
        userInfos.add(new userInfo(4,"LL",37.64));
        userService.updateList(userInfos);
        List<userInfo> infos = userService.getAll();
        System.out.println(infos);
    }

此處需注意踩坑(本人在此處解決問題時耗費較長時間)
測試運行后出現報錯信息,提示大概為sql語法出現異常,然而多次排查各種(數據庫、字段、表名等等…)問題均無果
springboot批量新增,spring boot,java,junit
發(fā)現sql能夠在navicat上面正常的運行,于是就只有看配置。后來了解到了批量必然要執(zhí)行多行sql。但是mybatis默認是不開啟多行sql執(zhí)行的,于是修改配置,開啟MySQL多行sql執(zhí)行。

url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&allowMultiQueries = true

開啟多行sql執(zhí)行:在數據庫連接信息配置中 url后面加上:`allowMultiQueries = true

可以看到上訴問題立刻得到了解決?
springboot批量新增,spring boot,java,junit
springboot批量新增,spring boot,java,junit

mysql的url參數詳解:
springboot批量新增,spring boot,java,junit文章來源地址http://www.zghlxwxcb.cn/news/detail-700241.html

到了這里,關于SpringBoot中使用@Insert、@Update實現批量新增、更新的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Mybatis之批量更新數據(批量update)

    Mybatis之批量更新數據(批量update)

    前言 當我們使用mybatis的時候,可能經常會碰到一批數據的批量更新問題,因為如果一條數據一更新,那每一條數據就需要涉及到一次數據庫的操作,包括網絡IO以及磁盤IO,可想而知,這個效率是非常低下的。而平時我們很少直接使用原生jdbc直接操作數據庫,而是會使用比較

    2024年02月11日
    瀏覽(25)
  • for循環(huán)中循環(huán)一次提交一次 insert update 關閉事務 spring springboot mybatis

    ?在方法上直接加如下注解: 在測試的時候,有時候會希望在for循環(huán)中,代碼循環(huán)一次就提交一次事務。 最簡單的方式,就是關閉事務,不需要事務。添加注解如下: 如果說是真的在生產上有這樣的需要,每循環(huán)一次就提交事務,那就需要手動控制事務了。 需要這幾行代碼

    2024年02月07日
    瀏覽(24)
  • FieldFill.INSERT與FieldFill.UPDATE使用

    首先在bean對象的class里面對應字段上面加上 或者 如果需要同時指定新增和修改 則添加 然后添加下配置類

    2024年02月16日
    瀏覽(26)
  • Java8 實現批量插入和更新,SpringBoot實現批量插入和更新,Mybatis實現批量插入和更新

    基于mybatis實現的批量插入和更新 由于直接執(zhí)行批量所有數據可能會出現長度超出報錯問題,使用如下方式即可解決 原理還是分配執(zhí)行,這里的100就是設定每次執(zhí)行最大數 這里使用插入作為例子,也可以使用批量更新 更新的寫法

    2024年02月12日
    瀏覽(31)
  • django 批量創(chuàng)建bulk_create和批量更新bulk_update

    以創(chuàng)建1萬個對象為例,相比save() 循環(huán)和save() 事務,bulk_效率是save()循環(huán)保存的百倍,是事務處理的近10倍: 用法: 用法:

    2024年02月11日
    瀏覽(18)
  • Oracle數據庫update語句用法,多表批量更新對應的字段值

    Oracle數據庫update語句用法,多表批量更新對應的字段值

    日常工作經常會遇到參照某個表格,更新主表對應字段的值 一般可以用excel的VLOOKup函數進行查找匹配,但是這種方法需要將表從數據庫中導出,更新完了之后再導回數據庫中。 我們用update語句可以很方便在數據庫里完成更新。 語句: update 要修改數據的表名 set 修改的列1=(

    2024年02月06日
    瀏覽(23)
  • Mybatis-plus通過其他字段批量更新或新增

    根據某個或者多個非ID字段進行批量更新 示例通過名稱與id兩個字段更新 引用mybatis-plus根據某個指定字段批量更新數據庫 通過其他字段批量更新或新增

    2024年02月12日
    瀏覽(19)
  • springboot+es批量新增、批量修改、根據內部id批量查詢

    pom.xml配置 yml配置 EsConfig配置 ElasticSearchConfig 配置 啟動類配置 //批量操作的對象 批量修改 批量新增 根據es內部id批量查詢數據

    2024年02月11日
    瀏覽(31)
  • 【postgresql 基礎入門】UPSERT語句,INSERT違反約束條件時可以轉變?yōu)閁PDATE語句,UPDATE與INSERT的合體

    ? 專欄內容 : postgresql內核源碼分析 手寫數據庫toadb 并發(fā)編程 個人主頁 :我的主頁 管理社區(qū) :開源數據庫 座右銘:天行健,君子以自強不息;地勢坤,君子以厚德載物. 入門準備 postgrersql基礎架構 快速使用 初始化集群 數據庫服務管理 psql客戶端使用 pgAdmin圖形化客戶端

    2024年03月12日
    瀏覽(50)
  • 使用saveOrUpdateBatch實現批量插入更新數據

    saveOrUpdateBatch 是 Hibernate 中的一個方法,可以用來批量插入或更新數據。這個方法的參數是一個 List,里面可以存儲多個實體對象。當 Hibernate 執(zhí)行這個方法時,會檢查每個實體對象是否存在主鍵,如果存在主鍵就執(zhí)行 update 操作,否則執(zhí)行 insert 操作。 使用 saveOrUpdateBatch 的代

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包