MyBatis多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除方式_第1頁
MyBatis多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除方式_第2頁
MyBatis多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除方式_第3頁
MyBatis多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除方式_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第MyBatis多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除方式目錄多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除1、使用場景2、代碼實(shí)現(xiàn)3、實(shí)現(xiàn)結(jié)果展現(xiàn)MyBatis多條件批量刪除的sql語句我把這次的代碼貼出來,僅供參考

多個(gè)條件使用Map傳遞參數(shù)進(jìn)行批量刪除

1、使用場景

因?yàn)轫?xiàng)目需要針對(duì)資源文件(視頻、音頻、文檔),編輯時(shí)候可能出現(xiàn)以下3種情況:

實(shí)現(xiàn)的項(xiàng)目效果圖:

1.1、刪除多個(gè)已經(jīng)選擇的標(biāo)簽(與本次文章相關(guān)內(nèi)容)

1.2、新增標(biāo)簽(選擇已有標(biāo)簽作為新增,輸入新的標(biāo)簽作為新增的)

因?yàn)楸緲I(yè)務(wù)場景之中與此文章相關(guān)的內(nèi)容重點(diǎn)介紹一下如何,使用MapString,Object參數(shù)傳遞過個(gè)參數(shù)進(jìn)行批量刪除資源標(biāo)簽關(guān)系表記錄信息。

2、代碼實(shí)現(xiàn)

由于此功能需要在取消選擇當(dāng)前資源標(biāo)簽之中的,以前已經(jīng)選擇過的標(biāo)簽,需要傳遞兩個(gè)參數(shù)進(jìn)行刪除【資源標(biāo)簽關(guān)系記錄表】之中的記錄,主要有資源id(resourceId),多個(gè)標(biāo)簽的ids(deleteTagIdList)。具體代碼如下所示:

Java接口定義及MyBatis語句定義代碼

*刪除資源標(biāo)簽關(guān)系表之中相關(guān)信息

*@paramdeleteTagRelationParams

*@return

intdeleteBatchEnclosureTagRelationList(MapString,ObjectdeleteTagRelationParams);

!--批量刪除課程資源標(biāo)簽--

deleteid="deleteBatchEnclosureTagRelationList"parameterType="hashmap"

deletefromcourse_enclosure_tagwhereresource_id=#{resourceId}ANDtag_idin

foreachcollection="deleteTagIdList"item="tagId"separator=","open="("close=")"

#{tagId}

/foreach

/delete

具體業(yè)務(wù)操作Java代碼

if(deleteTagList.size()0){

ListLongdeleteTagIdList=newArrayListLong

for(MapString,ObjectitemMap:deleteTagList){

LongdelTagId=Long.parseLong(itemMap.get("id").toString());

deleteTagIdList.add(delTagId);

MapString,ObjectdeleteTagRelationParams=newHashMapString,Object

deleteTagRelationParams.put("resourceId",courseEnclosure.getId());

deleteTagRelationParams.put("deleteTagIdList",deleteTagIdList);

deleteBatchEnclosureTagRelationList(deleteTagRelationParams);

}

注意事項(xiàng):deleteTagIdList參數(shù)的ListLong類型一定要和接口函數(shù)之中的類型一致;本人定義接口參數(shù)

LongdelTagId=Long.parseLong(itemMap.get("id").toString());

//必須是Long定義類型List如果使用long定義后端無法執(zhí)行的

longdelTagId=Long.parseLong(itemMap.get("id").toString());

3、實(shí)現(xiàn)結(jié)果展現(xiàn)

MyBatis多條件批量刪除的sql語句

今天在寫代碼的過程中,有一個(gè)批量刪除的需求,且這個(gè)刪除的條件是三個(gè)字段組成的聯(lián)合主鍵。

一開始我們新手可能會(huì)想到在service層使用for循環(huán)來多次調(diào)用mapper層的刪除方法,這樣雖然能夠?qū)崿F(xiàn)功能,但是消耗的系統(tǒng)資源很多,效率不高。

我也在網(wǎng)上找了找,發(fā)現(xiàn)這樣的例子很少

我把這次的代碼貼出來,僅供參考

代碼如下:

deleteid="deletePubPrintTmplComputers"parameterType="java.util.List"

deletefromPUB_PRINT_TMPL_COMPUTER

foreachcollection="listData"item="item"separator="or"index="index"

where

iftest="item.tmplCode!=null"

andTMPL_CODE=#{item.tmplCode,jdbcType=VARCHAR}

/if

iftest="item.tmplSeq!=null"

andTMPL_SEQ=#{item.tmplSeq,jdbcType=INTEGER}

/if

iftest="puterCode!=null"

andCOMPUTER_CODE=#{puterCode,jdbcType=VARCHAR}

/if

/where

/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論