Java?spring?boot實(shí)現(xiàn)批量刪除功能詳細(xì)示例
前言
根據(jù)前面的刪除的功能的實(shí)現(xiàn),現(xiàn)在我們來實(shí)現(xiàn)一個(gè)可以批量刪除的功能,不懂刪除功能的可以跳到主頁去搜索Java刪除的功能即可,這里就不多進(jìn)行啰嗦,那么進(jìn)入正題!
原理:
批量刪除的原理是通過一個(gè)循環(huán)來遍歷要?jiǎng)h除的用戶信息的ID數(shù)組,然后依次調(diào)用單個(gè)刪除礦工信息的方法來刪除每一個(gè)用戶信息。在刪除的過程中,統(tǒng)計(jì)成功刪除的信息數(shù)量、失敗刪除的信息數(shù)量以及失敗原因,并最終返回給調(diào)用者。
在實(shí)際操作中,批量刪除通常比單個(gè)刪除效率更高,因?yàn)榕縿h除只需要一次連接數(shù)據(jù)庫就可以刪除多條數(shù)據(jù),而單個(gè)刪除則需要多次連接數(shù)據(jù)庫。另外,批量刪除還可以減少數(shù)據(jù)庫的負(fù)擔(dān),因?yàn)樵谝淮芜B接數(shù)據(jù)庫的過程中,可以同時(shí)刪除多條數(shù)據(jù),而不需要多次連接數(shù)據(jù)庫。
比較一下:
單個(gè)刪除的Controller:
@CrossOrigin
@GetMapping("/miner/deleteUser")
public ResultResponse deleteMiner (@RequestParam Integer id) {
boolean result = userService.deleteUser(id);
if(result) {
return ResultResponse.returnToken(ResultResponse.success("刪除信息成功"));
} else {
return ResultResponse.returnToken(ResultResponse.fail("刪除信息失敗"));
}
}通過GET請求,接收一個(gè)名為id的參數(shù),用于刪除單個(gè)用戶的信息。方法體內(nèi)調(diào)用了userService.deleteMiner方法,將id作為參數(shù)傳遞給業(yè)務(wù)層,如果刪除成功則返回成功的響應(yīng),否則返回失敗的響應(yīng)。
批量刪除的Controller:
@CrossOrigin
@PostMapping("/deleteBatchUser")
public ResultResponse deleteBatchuser(@RequestBody Integer[] ids) {
int successCount = 0; // 成功的信息
int failureCount = 0; // 失敗的信息
List<String> failureReasons = new ArrayList<>();
for (Integer id : ids) {
boolean result = userService.deleteUser(id);
if (result) {
successCount++;
} else {
failureCount++;
failureReasons.add(String.format("刪除用戶信息 %d 失敗", id));
}
}
// 判斷批量刪除成功和失敗的操作程序
if (failureCount == 0) {
return ResultResponse.returnToken(ResultResponse.success(String.format("成功刪除 %d 條用戶信息", successCount)));
} else {
String failReason = "未知錯(cuò)誤";
if (failureReasons.contains("數(shù)據(jù)庫連接斷開或不穩(wěn)定,導(dǎo)致無法執(zhí)行刪除操作")) {
failReason = "數(shù)據(jù)庫連接問題";
}
// 返回成功刪除部分信息以及失敗的部分和原因參數(shù)
return ResultResponse.returnToken(ResultResponse.fail(String.format("成功刪除 %d 條用戶信息 失敗刪除 %d 條信息,失敗原因:%s",successCount, failureCount,failReason)));
}
}postman測試:

刪除前的數(shù)據(jù)庫:

SEND:

刪除后的數(shù)據(jù)庫:

完成?。?!
總結(jié)
到此這篇關(guān)于Java spring boot實(shí)現(xiàn)批量刪除功能的文章就介紹到這了,更多相關(guān)Java spring boot批量刪除功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Cloud 覆寫遠(yuǎn)端的配置屬性實(shí)例詳解
這篇文章主要介紹了Spring Cloud 覆寫遠(yuǎn)端的配置屬性的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01
基于springboot bean的實(shí)例化過程和屬性注入過程
這篇文章主要介紹了基于springboot bean的實(shí)例化過程和屬性注入過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
淺談java中集合的由來,以及集合和數(shù)組的區(qū)別詳解
下面小編就為大家?guī)硪黄獪\談java中集合的由來,以及集合和數(shù)組的區(qū)別詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10
解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xx
這篇文章主要介紹了解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xxxContr問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Java序列化與serialVersionUID生成方法詳解
在Java開發(fā)中,對象的序列化與反序列化是一個(gè)關(guān)鍵特性,廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)傳輸?shù)葓鼍?而serialVersionUID作為序列化機(jī)制中的一個(gè)重要標(biāo)識(shí),用于確保類版本的一致性,本文將詳細(xì)講解如何生成serialVersionUID,并結(jié)合具體代碼實(shí)例,幫助讀者更好地理解和應(yīng)用這一概念2025-06-06
SpringBoot配置Hikari數(shù)據(jù)庫連接池的詳細(xì)步驟
Spring Boot是一個(gè)開源的Java框架,它簡化了基于Spring的應(yīng)用程序的開發(fā)和部署,HikariCP是一個(gè)高性能的Java數(shù)據(jù)庫連接池,被廣泛應(yīng)用于Java開發(fā)領(lǐng)域,它是目前最快和最輕量級(jí)的連接池之一,本文介紹了SpringBoot配置Hikari數(shù)據(jù)庫連接池的詳細(xì)步驟,需要的朋友可以參考下2024-08-08
Spring?Boot?Actuator管理日志的實(shí)現(xiàn)
本文主要介紹了Spring?Boot?Actuator管理日志的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

