網站首頁 編程語言 正文
由于MyBatis中@Delete注解在SQL中的語法是通過占位符的方式支持參數綁定,所以在使用#{}傳入List類型參數時會默認生成一個單一的問號(?)占位符來代替這個List。但是這里我們要傳遞的是一個List內的多個ID值,所以當我們執行deleteByIdList方法時,MyBatis會將List作為一個參數處理,并嘗試將其綁定到這個單獨的占位符上,導致SQL語法錯誤。因此,為了正確地使用@Delete注解傳遞List類型參數,需要進行以下兩步操作:
1:修改SQL語句,讓它匹配List作為參數
@Mapper
public interface OssFileMapper {
@Delete("<script>" +
"DELETE FROM oss_file WHERE id IN " +
"<foreach item='id' collection='idList' separator=',' open='(' close=')'>" +
"#{id}" +
"</foreach>"+
"</script>")
void deleteByIdList(List<Long> idList);
}
2:使用
這樣就可以正確地使用@Delete注解傳遞List類型參數進行批量刪除操作了。
原文鏈接:https://blog.csdn.net/qq_19891197/article/details/130196175
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-06-08 FreeRTOS任務控制API函數的功能分析_操作系統
- 2022-06-01 Python學習之內置函數總結_python
- 2022-04-07 關于WPF?WriteableBitmap類直接操作像素點的問題_應用技巧
- 2022-08-29 Python通用驗證碼識別OCR庫ddddocr的安裝使用教程_python
- 2022-09-26 Mybatis的一級緩存和二級緩存及其區別
- 2022-07-18 IDEA如何快速切換項目(快捷鍵切換)
- 2022-04-05 android使用shape自定義Switch組件
- 2022-11-01 詳解golang中的閉包與defer_Golang
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支