最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis-plus foreach拼接字符串查詢無(wú)數(shù)據(jù)返回問(wèn)題

 更新時(shí)間:2022年03月22日 15:59:04   作者:輕點(diǎn) 別打臉  
這篇文章主要介紹了Mybatis-plus foreach拼接字符串查詢無(wú)數(shù)據(jù)返回問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

foreach拼接字符串查詢無(wú)數(shù)據(jù)返回

Mybatis-plus xml使用foreach遍歷查詢條件,填充IN函數(shù)時(shí),查詢不到數(shù)據(jù)

入?yún)?List<String>[A,B,C,D,E,F]

?WHERE sku_code IN
?<foreach collection="listHistoryBrowseDateVO.list" item="skuCode" index="index" open="(" close=")"
? ? ? ? ? separator=",">
? ? ?#{skuCode}
?</foreach>

以上代碼在迭代器中,給IN函數(shù)賦值的時(shí)候,使用的是#{ }占位符號(hào),最后解析出的sql是:

WHERE sku_code IN (A,B,C,D,E,F)不符合IN函數(shù)填充查詢格式。

兩種解決方式

1、將入?yún)⑻幚頌椋?String ‘A’,‘B’,‘C’,‘D’,‘E’,‘F’,然后使用占位符 WHERE sku_code IN (#{}) 直接填充

2、入?yún)⑻幚頌椋篖ist [ ‘A’,‘B’,‘C’,‘D’,‘E’,‘F’],使用迭代器+拼接符${}

入?yún)?List<String>   [  'A','B','C','D','E','F']

?WHERE sku_code IN
?<foreach collection="listHistoryBrowseDateVO.list" item="skuCode" index="index" open="(" close=")"
? ? ? ? ? separator=",">
? ? ?${skuCode}
?</foreach>

Mybatis-plus #{} 占位符,${}拼接符,在sql解析的時(shí)是有區(qū)別的

精講#{}和${}的區(qū)別是什么?

經(jīng)常碰到這樣的面試題目:#{}和${}的區(qū)別是什么?

網(wǎng)上的答案是:

#{}是預(yù)編譯處理,${}是字符串替換。mybatis在處理#{}時(shí),會(huì)將sql中的#{}替換為?號(hào),調(diào)用PreparedStatement的set方法來(lái)賦值;mybatis在處理${}時(shí),就是把${}替換成變量的值。使用#{}可以有效的防止SQL注入,提高系統(tǒng)安全性。

對(duì)于這個(gè)問(wèn)題我感覺(jué)要抓住兩點(diǎn)

(1)$符號(hào)一般用來(lái)當(dāng)作占位符,常使用Linux腳本的人應(yīng)該對(duì)此有更深的體會(huì)吧。既然是占位符,當(dāng)然就是被用來(lái)替換的。知道了這點(diǎn)就能很容易區(qū)分$和#,從而不容易記錯(cuò)了。

(2)預(yù)編譯的機(jī)制。預(yù)編譯是提前對(duì)SQL語(yǔ)句進(jìn)行預(yù)編譯,而其后注入的參數(shù)將不會(huì)再進(jìn)行SQL編譯。我們知道,SQL注入是發(fā)生在編譯的過(guò)程中,因?yàn)閻阂庾⑷肓四承┨厥庾址詈蟊痪幾g成了惡意的執(zhí)行操作。而預(yù)編譯機(jī)制則可以很好的防止SQL注入。

最后想說(shuō)的是,對(duì)于mybatis以及sql而言,每一個(gè)考點(diǎn)背后都是有一個(gè)深刻的思想存在的,應(yīng)該好好的體會(huì)。這樣才能真正的做到技術(shù)提升,成為技術(shù)大牛。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • PowerJob的OmsLogHandler工作流程源碼解析

    PowerJob的OmsLogHandler工作流程源碼解析

    這篇文章主要為大家介紹了PowerJob的OmsLogHandler工作流程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • SpringBoot中@Insert、@Update實(shí)現(xiàn)批量新增更新的使用示例

    SpringBoot中@Insert、@Update實(shí)現(xiàn)批量新增更新的使用示例

    本文主要介紹了SpringBoot中@Insert、@Update實(shí)現(xiàn)批量新增更新的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • 淺談Thread.sleep(0)到底有什么用

    淺談Thread.sleep(0)到底有什么用

    為什么要用sleep,主要是為了暫停當(dāng)前線程,把cpu片段讓出給其他線程,減緩當(dāng)前線程的執(zhí)行,本文主要介紹了Thread.sleep(0)到底有什么用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 詳解spring security filter的工作原理

    詳解spring security filter的工作原理

    這篇文章主要介紹了詳解spring security filter的工作原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • java8升級(jí)java21方法步驟(完整pom文件升級(jí)及代碼修改)

    java8升級(jí)java21方法步驟(完整pom文件升級(jí)及代碼修改)

    在從Java?8升級(jí)至Java?211的過(guò)程中,需要對(duì)多個(gè)POM文件進(jìn)行升級(jí),涉及parent、web、service等模塊,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-11-11
  • Java使用Queryable-pageable實(shí)現(xiàn)分頁(yè)效果

    Java使用Queryable-pageable實(shí)現(xiàn)分頁(yè)效果

    這篇文章主要為大家介紹了Java如何使用Queryable-pageable從而實(shí)現(xiàn)分頁(yè)效果,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-06-06
  • Java如何自動(dòng)生成api文檔

    Java如何自動(dòng)生成api文檔

    在?Java?開發(fā)中,自動(dòng)生成?API?文檔是一項(xiàng)非常實(shí)用的功能,這篇為大家介紹了幾種常見(jiàn)的?Java?自動(dòng)生成?API?文檔的方式,需要的可以參考一下
    2025-02-02
  • SpringBoot集成gRPC微服務(wù)工程搭建實(shí)踐的方法

    SpringBoot集成gRPC微服務(wù)工程搭建實(shí)踐的方法

    這篇文章主要介紹了SpringBoot集成gRPC微服務(wù)工程搭建實(shí)踐的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 在X分鐘內(nèi)學(xué)會(huì)C#的入門簡(jiǎn)明教程

    在X分鐘內(nèi)學(xué)會(huì)C#的入門簡(jiǎn)明教程

    C#是一個(gè)優(yōu)雅的、類型安全的面向?qū)ο笳Z(yǔ)言。使用C#,開發(fā)者可以在.NET框架下構(gòu)建安全而強(qiáng)大的應(yīng)用程序,閱讀本文可以快速的入門C#編程語(yǔ)言,需要的朋友可以參考下
    2014-03-03
  • Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn)

    Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn)

    這篇文章主要為大家介紹了Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評(píng)論

永嘉县| 侯马市| 阳江市| 武定县| 府谷县| 从江县| 姜堰市| 莱芜市| 红河县| 胶州市| 连州市| 罗平县| 额尔古纳市| 靖州| 嘉荫县| 临泉县| 鹤庆县| 甘泉县| 城固县| 宁化县| 龙泉市| 道真| 崇州市| 成都市| 绍兴县| 鄂尔多斯市| 信阳市| 盘锦市| 平远县| 龙胜| 青铜峡市| 固原市| 自治县| 濉溪县| 林甸县| 禄丰县| 长兴县| 乾安县| 广昌县| 德格县| 开化县|