欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis 如何批量刪除數(shù)據(jù)的實(shí)現(xiàn)示例

 更新時(shí)間:2021年03月05日 14:12:32   作者:縱有千千星晚  
這篇文章主要介紹了Mybatis 如何批量刪除數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本期以最常用的根據(jù)id批量刪除數(shù)據(jù)為例:

接口設(shè)計(jì)1:List類型單參數(shù)

Integer deleteByIds(List<Integer> ids);

接口設(shè)計(jì)2:Array數(shù)組類型單參數(shù)

Integer deleteByIds(Integer[] ids);

接口設(shè)計(jì)3:可變長(zhǎng)度參數(shù)

Integer deleteByIds(Integer... ids);

此以接口2為例子mapper.xml配置如下:

<delete id="deleteByIds">
  DELETE FROM t_user WHERE id IN (
   <foreach collection="array" item="id" separator=",">
      #{id}
   </foreach>
  )
</delete>

關(guān)于<foreach>節(jié)點(diǎn)的配置說(shuō)明:

collection:需要被遍歷的對(duì)象,當(dāng)抽象方法的參數(shù)只有1個(gè)且沒有添加@Param注解時(shí),如果參數(shù)類型是List集合,則取值為list,如果參數(shù)類型是數(shù)組,則取值為array;當(dāng)抽象方法的參數(shù)超過(guò)1個(gè),就一定添加了@Param注解,則取值為@Param注解配置的參數(shù)值;

如下圖接口所示:

item:遍歷過(guò)程中的每一個(gè)元素?cái)?shù)據(jù),當(dāng)前屬性可以自定義值表示元素?cái)?shù)據(jù)的名稱,在<foreach>節(jié)點(diǎn)的子級(jí),使用#{}占位符時(shí),就可以使用這個(gè)名稱來(lái)表示數(shù)據(jù);

separator:遍歷生成的代碼片段中,各元素?cái)?shù)據(jù)之間的分隔符號(hào);

open / close:遍歷生成的代碼片段的最左側(cè)字符串/最右側(cè)字符串。

補(bǔ)充知識(shí)點(diǎn):關(guān)于#{}和${}格式的占位符

MyBatis允許在配置SQL語(yǔ)句時(shí)使用#{}和${}這2種格式的占位符來(lái)表示參數(shù)值。

簡(jiǎn)單原則:在原本使用JDBC技術(shù)編程時(shí),編寫SQL語(yǔ)句時(shí)可以寫問(wèn)號(hào)(?)的位置,都使用#{}格式的占位符,不可以寫問(wèn)號(hào)的位置,必須使用${}格式的占位符!

使用#{}格式的占位符,只能表示某個(gè)值!MyBatis在處理時(shí),會(huì)通過(guò)預(yù)編譯的方式進(jìn)行處理,即:先使用問(wèn)號(hào)對(duì)占位符表示的值進(jìn)行占位,并將整個(gè)SQL語(yǔ)句交由MySQL進(jìn)行編譯相關(guān)的處理(包括詞法分析、語(yǔ)義分析、編譯),當(dāng)編譯完成后,再將值代入到編譯成功的SQL語(yǔ)句中一并執(zhí)行。簡(jiǎn)單來(lái)說(shuō),使用#{}格式的占位符時(shí),最終處理機(jī)制是使用了預(yù)編譯的!所以,使用這種格式的占位符時(shí),在編寫SQL時(shí)不需要關(guān)心值的數(shù)據(jù)類型的問(wèn)題,并且,不存在SQL注入的風(fēng)險(xiǎn)!

使用${}格式的占位符,可以表示SQL語(yǔ)句中的任意片段!MyBatis在處理時(shí),會(huì)先將${}格式占位符對(duì)應(yīng)的值拼接到SQL語(yǔ)句中,然后再將SQL語(yǔ)句交由MySQL進(jìn)行編譯相關(guān)處理,也就是說(shuō),${}格式占位符的值在編譯之前就已經(jīng)代入到SQL語(yǔ)句中了!很顯然,在處理${}格式的占位符時(shí),沒有(也不可能)使用預(yù)編譯!所以,使用這種格式的占位符時(shí),需要自行在SQL語(yǔ)句中考慮數(shù)據(jù)類型的問(wèn)題,例如字符串類型的值需要使用一對(duì)單引號(hào)框住!另外,還存在SQL注入的風(fēng)險(xiǎn)!

到此這篇關(guān)于Mybatis 如何批量刪除數(shù)據(jù)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Mybatis 批量刪除數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用 Spring Boot 內(nèi)嵌容器 Undertow創(chuàng)建服務(wù)器的方法

    使用 Spring Boot 內(nèi)嵌容器 Undertow創(chuàng)建服務(wù)器的方法

    Undertow是一個(gè)非常輕量并高性能的web server,它來(lái)自 JBoss。支持blocking和non-blocking兩種NIO API。接下來(lái)通過(guò)本文給大家介紹使用Spring Boot 內(nèi)嵌容器 Undertow創(chuàng)建服務(wù)器的方法,感興趣的朋友一起看看吧
    2017-11-11
  • SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端

    SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端

    MQTT是一種輕量級(jí)的消息傳輸協(xié)議(Message Queuing Telemetry Transport),旨在實(shí)現(xiàn)設(shè)備之間的低帶寬和高延遲的通信,本文給大家介紹了SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端,需要的朋友可以參考下
    2024-04-04
  • Java初始化塊及執(zhí)行過(guò)程解析

    Java初始化塊及執(zhí)行過(guò)程解析

    這篇文章主要介紹了Java初始化塊及執(zhí)行過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Spring?Boot超大文件上傳實(shí)現(xiàn)秒傳功能

    Spring?Boot超大文件上傳實(shí)現(xiàn)秒傳功能

    這篇文章主要介紹了Spring?Boot超大文件上傳實(shí)現(xiàn)秒傳功能,在實(shí)現(xiàn)分片上傳的過(guò)程,需要前端和后端配合,比如前后端的上傳塊號(hào)的文件大小,前后端必須得要一致,否則上傳就會(huì)有問(wèn)題,需要的朋友可以參考下
    2022-12-12
  • springboot集成WebSockets廣播消息(推薦)

    springboot集成WebSockets廣播消息(推薦)

    這篇文章主要介紹了springboot-集成WebSockets廣播消息,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • springboot集成redis哨兵集群的實(shí)現(xiàn)示例

    springboot集成redis哨兵集群的實(shí)現(xiàn)示例

    本文主要介紹了springboot集成redis哨兵集群的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Java中超詳細(xì)this與super的概念和用法

    Java中超詳細(xì)this與super的概念和用法

    這篇文章主要介紹了Java中超詳細(xì)this與super的概念和用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • springboot關(guān)閉druid監(jiān)控 druid2改配置文件無(wú)效的解決

    springboot關(guān)閉druid監(jiān)控 druid2改配置文件無(wú)效的解決

    這篇文章主要介紹了springboot關(guān)閉druid監(jiān)控 druid2改配置文件無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringBoot全局異常處理之多個(gè)處理器匹配順序(最新推薦)

    SpringBoot全局異常處理之多個(gè)處理器匹配順序(最新推薦)

    這篇文章主要介紹了SpringBoot全局異常處理之多個(gè)處理器匹配順序(最新推薦),調(diào)試源碼可見匹配順序?yàn)椋寒惓蛹?jí)高者優(yōu)先,再清楚點(diǎn),子類異常處理器優(yōu)先,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-03-03
  • Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類型互相轉(zhuǎn)換的簡(jiǎn)單示例

    Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類型互相轉(zhuǎn)換的簡(jiǎn)單示例

    這篇文章主要介紹了Java 基礎(chǔ) byte[]與各種數(shù)據(jù)類型互相轉(zhuǎn)換的簡(jiǎn)單示例的相關(guān)資料,這里對(duì)byte[]類型對(duì)long,int,double,float,short,cahr,object,string類型相互轉(zhuǎn)換的實(shí)例,需要的朋友可以參考下
    2017-01-01

最新評(píng)論