mybatis中foreach嵌套if標(biāo)簽方式
mybatis foreach嵌套if標(biāo)簽
代碼實現(xiàn):
Mapper.java文件
List<Map<String, Object>> getYsxmcodeByYszbh(@Param("qyName") List<String> qyName, @Param("yszh") String yszh);
XXX.xml文件
<select id="getYsxmcodeByYszbh" resultType="java.util.Map"> ?? ?<foreach collection="qyName" index="index" item="qy"> ?? ??? ?<if test="index != 0"> ?? ??? ??? ?union ?? ??? ?</if> ?? ?select ysxmcode from ${qy}_yxsxk.tpc_ysxkz where yszbh=#{yszh,jdbcType=VARCHAR} ?? ?</foreach> </select>
判斷是否為第一個循環(huán),是不加union拼接,否則加上
xml文件 $和 #的區(qū)別
${}在預(yù)編的時候會直接被變量替換,但是存在被注入的問題,表名必須用${},因為#{}在預(yù)編的時候會被解析為?占位符,但當(dāng)被變量替換的時候會加上 ''單引號,表明不允許加單引號(但是反引號``是可以的)
union與union all區(qū)別
1.union all是直接連接,取到得是所有值,記錄可能有重復(fù);union 是取唯一值,記錄沒有重復(fù)。所以union在進(jìn)行表鏈接后會篩選掉重復(fù)的記錄,union all不會去除重復(fù)記錄。
2.union將會按照字段的順序進(jìn)行排序;union all只是簡單的將兩個結(jié)果合并后就返回。從效率上說,union all 要比union快很多,所以,如果可以確認(rèn)合并的兩個結(jié)果集中不包含重復(fù)數(shù)據(jù)且不需要排序時的話,那么就使用union all。
mybatis if和foreach嵌套 (同一個列,不定個數(shù)的查詢條件)
有這么一種需求
根據(jù)輸入的內(nèi)容的個數(shù)設(shè)置不同個數(shù)的查詢條件(在一個列上設(shè)置不定個數(shù)的查詢條件),這時就需要根
據(jù)foreach循環(huán)在一個列上拼接查詢條件了。
模板如下圖
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中double轉(zhuǎn)化為BigDecimal精度缺失的實例
下面小編就為大家?guī)硪黄猨ava中double轉(zhuǎn)化為BigDecimal精度缺失的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03SpringBoot整合SpringDataRedis的示例代碼
這篇文章主要介紹了SpringBoot整合SpringDataRedis的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05SpringBoot中配置雙數(shù)據(jù)源的實現(xiàn)示例
在許多應(yīng)用程序中,可能會遇到需要連接多個數(shù)據(jù)庫的情況,本文主要介紹了SpringBoot中配置雙數(shù)據(jù)源的實現(xiàn)示例,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08Java中Array、List、Map相互轉(zhuǎn)換的方法詳解
這篇文章主要介紹了Java中Array、List、Map相互轉(zhuǎn)換的方法詳解,在實際項目開發(fā)中或者一些算法面試題目中經(jīng)常需要用到Java中這三種類型的相互轉(zhuǎn)換,比如對于一個整型數(shù)組中尋找一個整數(shù)與所給的一個整數(shù)值相同,需要的朋友可以參考下2023-08-08SpringBoot中實現(xiàn)異步調(diào)用@Async詳解
這篇文章主要介紹了SpringBoot中實現(xiàn)異步調(diào)用@Async詳解,在SpringBoot的日常開發(fā)中,一般都是同步調(diào)用的,但實際中有很多場景非常適合使用異步來處理,需要的朋友可以參考下2024-01-01Springboot如何使用filter對request body參數(shù)進(jìn)行校驗
這篇文章主要介紹了Springboot如何使用filter對request body參數(shù)進(jìn)行校驗,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03