使用Mybatis如何實現(xiàn)刪除多個數(shù)據(jù)
Mybatis刪除多個數(shù)據(jù)
例如:
刪除數(shù)據(jù)庫中sid=1和sid=2的數(shù)據(jù)
操作步驟如下
1.在實體類中創(chuàng)建一個LIst用于存放要刪除的sid
2.配置Mapper.xml如下:
collection裝要遍歷的字段,item裝獲取到的變量,separator裝多值之間分割的字段
如果SQL刪除語句為:
DELETE FROM animal WHERE a_sid IN(1,2)
用foreach標簽中的open="" close="",分別表示以什么開始和以什么結(jié)束
3.接口文件中配置執(zhí)行語句
public int delMor(Animal animal);
4.配置Test相關(guān)語句測試:
Mybatis批量刪除多表數(shù)據(jù)
業(yè)務(wù)需求
需要一鍵清除數(shù)據(jù),將庫中以“obj_”前綴開頭的表數(shù)據(jù)全部清除。
查詢以obj_前綴開頭的表的截斷語句
mapper接口方法:
/** * 查詢所有obj開頭的表的數(shù)據(jù)刪除sql */ List<String> selectAllObjTableRemoveSql();
xml:
<select id="selectAllObjTableRemoveSql" resultType="java.lang.String"> SELECT CONCAT( 'truncate table ', TABLE_NAME, ';' ) FROM information_schema.TABLES WHERE table_schema = 'sc-gateway' AND TABLE_NAME LIKE 'obj_%'; </select>
其中的“obj_”就是需要匹配的表名稱字符
查詢的結(jié)果是一個List<String>,其中的每項就是一張表的截斷語句
后續(xù)只要將每個語句執(zhí)行一遍就可以了
直接將整個String傳過去執(zhí)行
<delete id="removeDataBySql" parameterType="String"> ${value} </delete>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java設(shè)計模式中的設(shè)計原則之合成復用原則詳解
這篇文章主要介紹了Java設(shè)計模式中的設(shè)計原則之合成復用原則詳解,原則是盡量使用合成/聚合的方式,而不是使用繼承聚合關(guān)系表示的是整體和部分的關(guān)系,整體與部分可以分開,可以理解為成員變量和當前類的關(guān)系就是聚合關(guān)系,需要的朋友可以參考下2023-11-11詳解Java中Dijkstra(迪杰斯特拉)算法的圖解與實現(xiàn)
Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計算一個節(jié)點到其他所有節(jié)點的最短路徑。本文將詳解該算法的圖解與實現(xiàn),需要的可以參考一下2022-05-05Feign遠程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析
這篇文章主要介紹了Feign遠程調(diào)用傳遞對象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03基于selenium-java封裝chrome、firefox、phantomjs實現(xiàn)爬蟲
這篇文章主要介紹了基于selenium-java封裝chrome、firefox、phantomjs實現(xiàn)爬蟲,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-10-10網(wǎng)關(guān)Spring Cloud Gateway HTTP超時配置問題
這篇文章主要介紹了網(wǎng)關(guān)Spring Cloud Gateway HTTP超時配置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Java File類 mkdir 不能創(chuàng)建多層目錄的解決
這篇文章主要介紹了Java File類 mkdir 不能創(chuàng)建多層目錄的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09