最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatisPlus中批量刪除的示例代碼

 更新時(shí)間:2023年06月16日 10:38:32   作者:fortunate_xiaowu  
本文主要介紹了mybatisPlus中批量刪除的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

業(yè)務(wù)需求:編輯時(shí),對主表中數(shù)據(jù)的修改,以及子數(shù)據(jù)可以進(jìn)行刪除,修改,或者新增的操作

前端(主要展示子表):可以點(diǎn)擊新增,也可以在原數(shù)據(jù)上進(jìn)行編輯,也可以刪除該條數(shù)據(jù)再新增

前端傳值(主要展示子表):

higtRule里面就是子數(shù)據(jù),沒有id的則是點(diǎn)擊新增后新增的數(shù)據(jù),所以既有新增操作,又有編輯操作
后臺處理(主要對子數(shù)據(jù)):

思路:

1:首先查詢?nèi)孔訑?shù)據(jù)
2:創(chuàng)建一個(gè)空集合newIds,用于存放未刪除的子數(shù)據(jù)的id,遍歷前端傳遞過來的子數(shù)據(jù),將子數(shù)據(jù)的id存放在newIds集合中
3:過濾數(shù)據(jù)也就是用全部的數(shù)據(jù)去過濾newIds的數(shù)據(jù),如果全部的數(shù)據(jù)中的數(shù)據(jù)和newIds中的數(shù)據(jù)不一致,則就是要刪除的子數(shù)據(jù),使用Java8的stream流處理,該方法返回的就是要刪除的數(shù)據(jù)的集合
4:創(chuàng)建一個(gè)空集合deleteIds,用于存放要刪除的子數(shù)據(jù)的id,遍歷deleteList,將id存放在deleteIds中

最后執(zhí)行刪除操作

controller:

/**
	 *  面積戶表-收費(fèi)標(biāo)準(zhǔn)-編輯
	 *
	 * @param artbFeeStandardVo
	 * @return
	 */
	@AutoLog(value = "artb_fee_standard-編輯")
	@ApiOperation(value="artb_fee_standard-編輯", notes="artb_fee_standard-編輯")
	@PutMapping(value = "/edit")
	public Result<?> edit(@RequestBody ArtbStandardVo artbFeeStandardVo) {
		return artbFeeStandardService.editArtbFeeStandard(artbFeeStandardVo);
	}

service層

Result<?> editArtbFeeStandard(ArtbStandardVo artbFeeStandardVo);

實(shí)現(xiàn)類(主要是對子數(shù)據(jù)的處理):

    @Override
    @Transactional
    public Result<?> editArtbFeeStandard(ArtbStandardVo artbFeeStandardVo) {
           // 更新子數(shù)據(jù)
            // 查詢?nèi)砍咭?guī)則
            QueryWrapper<ArtbFeeHighRule> oldChildWrapper = new QueryWrapper<>();
            oldChildWrapper.eq("standard_id", feeStandard.getId());
            List<ArtbFeeHighRule> highRules = highRuleMapper.selectList(oldChildWrapper);
            // 存儲前端傳遞過來未刪除的id
            List<String> newIds = new ArrayList<>();
            for (ArtbFeeHighRule rule : artbFeeStandardVo.getHighRuleList()) {
                newIds.add(rule.getId());
            }
            // 篩選出要刪除的超高數(shù)據(jù),進(jìn)行批量刪除
            List<ArtbFeeHighRule> deleteList = highRules.stream().filter(item -> !newIds.contains(item.getId())).collect(Collectors.toList());
            // 存放要刪除的id
            List<String> deleteIds = new ArrayList<>();
            for (ArtbFeeHighRule rule : deleteList) {
                deleteIds.add(rule.getId());
            }
            if (deleteIds.size() > 0) {
                highRuleMapper.deleteBatchById(deleteIds);
            }
            if (!CollectionUtils.isEmpty(artbFeeStandardVo.getHighRuleList())) {
                List<ArtbFeeHighRule> highList = new ArrayList<>();
                List<ArtbFeeHighRuleHistory> highHistoryList = new ArrayList<>();
                artbFeeStandardVo.getHighRuleList().forEach(item -> {
                    item.setInsertBaseColumnNoCompanyCode();
                    if (StringUtils.isEmpty(item.getId())) {
                        // 說明是新增
                        item.setId(IdUtil.getCombineId(feeStandard.getId()));
                        item.setStandardId(feeStandard.getId());
                        item.setCompanyCode(feeStandard.getCompanyCode());
                    }
                    highList.add(item);
                    // 更新超高歷史表
                    //操作軌跡
                    ArtbFeeHighRuleHistory highRuleHistory = new ArtbFeeHighRuleHistory();
                    BeanUtils.copyProperties(item, highRuleHistory);
                    highRuleHistory.setStandardId(feeStandardHistory.getId());
                    highRuleHistory.setCompanyCode(feeStandardHistory.getCompanyCode());
                    highRuleHistory.setInsertBaseColumnNoCompanyCode();
                    highRuleHistory.setId(IdUtil.getCombineId(highRuleHistory.getCompanyCode()));
                    highHistoryList.add(highRuleHistory);
                });
                // 超過規(guī)則做批量新增或者編輯
                highService.saveOrUpdateBatch(highList);
                // 超過規(guī)則歷史表做新增操作,記錄具體操作數(shù)據(jù)
                highHistoryService.saveBatch(highHistoryList);
            }
    }

mapper中的刪除

/**
	* 批量刪除超高數(shù)據(jù)
	* @param deleteIds
	* @return
	*/
	int deleteBatchById(List<String> deleteIds);

xml中

 <!--批量刪除超高數(shù)據(jù)-->
    <delete id="deleteBatchById" parameterType="java.util.List">
        delete from artb_fee_high_rule
        where id IN
        <foreach collection="list" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>

最后返回成功,或者失?。?/p>

 if (update > 0) {
            return Result.OK("修改成功");
        } else {
            return Result.error("修改失敗");
       }

到此這篇關(guān)于mybatisPlus中批量刪除的示例代碼的文章就介紹到這了,更多相關(guān)mybatisPlus 批量刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)字符串大小寫轉(zhuǎn)換的常用方法

    Java實(shí)現(xiàn)字符串大小寫轉(zhuǎn)換的常用方法

    在 Java 中,字符串大小寫轉(zhuǎn)換是文本處理的核心操作之一,Java 提供了多種靈活的方式來實(shí)現(xiàn)大小寫轉(zhuǎn)換,適用于不同場景和需求,本文將全面解析大小寫轉(zhuǎn)換的各種方法,并提供實(shí)用代碼示例,需要的朋友可以參考下
    2025-12-12
  • JavaWeb中的文件的上傳和下載

    JavaWeb中的文件的上傳和下載

    JavaWeb 文件的上傳和下載是指在Web應(yīng)用中實(shí)現(xiàn)用戶上傳文件到服務(wù)器和從服務(wù)器下載文件的功能,通過JavaWeb技術(shù),可以方便地實(shí)現(xiàn)文件的上傳和下載操作,提供更好的用戶體驗(yàn)和數(shù)據(jù)交互,需要的朋友可以參考下
    2023-10-10
  • spring啟動后保證創(chuàng)建的對象不被垃圾回收器回收

    spring啟動后保證創(chuàng)建的對象不被垃圾回收器回收

    最近看到一個(gè)問題是,spring在啟動后如何保證創(chuàng)建的對象不被垃圾回收器回收?。所以本文結(jié)合jvm的垃圾回收機(jī)制和spring中的源代碼做出自己的一點(diǎn)猜測。有需要的朋友們可以參考借鑒。
    2016-09-09
  • java使用Socket實(shí)現(xiàn)文件上傳功能

    java使用Socket實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了java使用Socket實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 使用springcloud+oauth2攜帶token去請求其他服務(wù)

    使用springcloud+oauth2攜帶token去請求其他服務(wù)

    這篇文章主要介紹了使用springcloud+oauth2攜帶token去請求其他服務(wù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java解壓zip文件示例

    java解壓zip文件示例

    這篇文章主要介紹了java解壓zip文件示例,在獲得一個(gè)以Zip格式壓縮的文件之后,需要將其進(jìn)行解壓縮,還原成壓縮前的文件,下面是代碼示例
    2014-03-03
  • 解析SpringBoot整合SpringDataRedis的過程

    解析SpringBoot整合SpringDataRedis的過程

    這篇文章主要介紹了SpringBoot整合SpringDataRedis的過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • springboot的controller中如何獲取applicatim.yml的配置值

    springboot的controller中如何獲取applicatim.yml的配置值

    本文介紹了在SpringBoot的Controller中獲取application.yml配置值的四種方式,并舉例說明了每種方式的使用場景和優(yōu)缺點(diǎn),結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • java讀取excel圖片導(dǎo)入代碼示例(親測有效)

    java讀取excel圖片導(dǎo)入代碼示例(親測有效)

    在日常工作中,我們經(jīng)常要將一些照片插入到Excel表格中,這篇文章主要給大家介紹了關(guān)于java讀取excel圖片導(dǎo)入的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • java實(shí)現(xiàn)頁面置換算法

    java實(shí)現(xiàn)頁面置換算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)頁面置換算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論

成武县| 黔西县| 神农架林区| 绥宁县| 新巴尔虎右旗| 舒城县| 灵台县| 内丘县| 瑞安市| 昌都县| 于都县| 凤山市| 北宁市| 惠水县| 石狮市| 万载县| 甘孜| 桑日县| 湛江市| 巨野县| 义乌市| 湾仔区| 武汉市| 庄河市| 兴国县| 新田县| 确山县| 诸城市| 科尔| 芜湖县| 临夏县| 密山市| 个旧市| 伽师县| 轮台县| 二连浩特市| 衡东县| 桂东县| 泰兴市| 新余市| 鄂托克旗|