日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

@Delete通過批量刪除的方法

作者:小徐敲java 更新時間: 2024-04-06 編程語言

由于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

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新