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

Mybatis注解方式完成輸入?yún)?shù)為list的SQL語(yǔ)句拼接方式

 更新時(shí)間:2021年11月30日 11:03:27   作者:我滴太陽(yáng)233  
這篇文章主要介紹了Mybatis注解方式完成輸入?yún)?shù)為list的SQL語(yǔ)句拼接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Mybatis注解完成輸入?yún)?shù)為list的SQL語(yǔ)句拼接

首先將list集合拼接成一個(gè)"1,2,3,4"格式的字符串

然后將這個(gè)字符串封裝到一個(gè)類中:TyreInfoIdStr

這里的@SelectProvider是調(diào)用一個(gè)外部的類的方法的返回值作為sql語(yǔ)句。

在這個(gè)方法中拼接SQL語(yǔ)句與list集合的字符串,我這里是提前拼接過了。

拼接查詢條件為list集合的sql函數(shù)

當(dāng)deptId 為1時(shí) sql語(yǔ)句不做更改

當(dāng)deptId 為其他數(shù)字時(shí) list中的id項(xiàng)作為sql查詢條件

剛開始編寫的時(shí)候思路是用or語(yǔ)句進(jìn)行循環(huán)遍歷 重復(fù)加上or的sql語(yǔ)句來查詢

發(fā)現(xiàn)比較復(fù)雜 最后采取了sql的in函數(shù)來實(shí)現(xiàn)

public String getDeptIdSql(List<Long> deptIdList){
    Iterator<Long> it = deptIdList.iterator();
    //當(dāng)部門id為1時(shí)  不采用篩選
    while(it.hasNext()){
          Long deptId = it.next();
          if(deptId == 1){
                return "";
          }
    }
          //拼接in條件語(yǔ)句
          String s = "";
          for(int i = 0; i < deptIdList.size();i++){
                if(i!=(deptIdList.size()-1)){
                      s += deptIdList.get(i) + ",";
                }else{
                      s += deptIdList.get(i);
                }
          }
          String sql = " and mtMaintenanceStandard.dept_Id in (" + s + ") ";
          return sql;
}

編寫完成后發(fā)現(xiàn)函數(shù)有可以提高函數(shù)的復(fù)用性,將mtMaintenanceStandard.dept_Id設(shè)為傳入的變量

最后得到

public String getDeptIdSql(String condition,List<Long> deptIdList){
    Iterator<Long> it = deptIdList.iterator();
    //當(dāng)部門id為1時(shí)  不采用篩選
    while(it.hasNext()){
          Long deptId = it.next();
          if(deptId == 1){
                return "";
          }
    }
          //拼接in條件語(yǔ)句
          String s = "";
          for(int i = 0; i < deptIdList.size();i++){
                if(i!=(deptIdList.size()-1)){
                      s += deptIdList.get(i) + ",";
                }else{
                      s += deptIdList.get(i);
                }
          }
          String sql = " and " + condition + " in (" + s + ") ";
          return sql;
}

更為通用的版本是不用判斷deptId是否為1

public String getDeptIdSql(String condition,List<Long> deptIdList){
          String s = "";
          for(int i = 0; i < deptIdList.size();i++){
                if(i!=(deptIdList.size()-1)){
                      s += deptIdList.get(i) + ",";
                }else{
                      s += deptIdList.get(i);
                }
          }
          String sql = " and " + condition + " in (" + s + ") ";
          return sql;
}

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

相關(guān)文章

  • Java Socket實(shí)現(xiàn)單線程通信的方法示例

    Java Socket實(shí)現(xiàn)單線程通信的方法示例

    這篇文章主要介紹了Java Socket實(shí)現(xiàn)單線程通信的方法,結(jié)合具體實(shí)例形式分析了java socket單線程通信的原理與客戶端、服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • 解決java.lang.NullPointerException報(bào)錯(cuò)以及分析出現(xiàn)的幾種原因

    解決java.lang.NullPointerException報(bào)錯(cuò)以及分析出現(xiàn)的幾種原因

    這篇文章介紹了解決java.lang.NullPointerException報(bào)錯(cuò)的方法,以及分析出現(xiàn)的幾種原因。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • java設(shè)計(jì)模式-單例模式實(shí)現(xiàn)方法詳解

    java設(shè)計(jì)模式-單例模式實(shí)現(xiàn)方法詳解

    單例模式,屬于創(chuàng)建類型的一種常用的軟件設(shè)計(jì)模式。通過單例模式的方法創(chuàng)建的類在當(dāng)前進(jìn)程中只有一個(gè)實(shí)例(根據(jù)需要,也有可能一個(gè)線程中屬于單例
    2021-07-07
  • SpringBoot中的@EnableConfigurationProperties注解詳細(xì)解析

    SpringBoot中的@EnableConfigurationProperties注解詳細(xì)解析

    這篇文章主要介紹了SpringBoot中的@EnableConfigurationProperties注解詳細(xì)解析,如果一個(gè)配置類只配置@ConfigurationProperties注解,而沒有使用@Component或者實(shí)現(xiàn)了@Component的其他注解,那么在IOC容器中是獲取不到properties 配置文件轉(zhuǎn)化的bean,需要的朋友可以參考下
    2024-01-01
  • Spring-cloud 注冊(cè)服務(wù)提供者搭建方法

    Spring-cloud 注冊(cè)服務(wù)提供者搭建方法

    本篇文章主要介紹了Spring-cloud 注冊(cè)服務(wù)提供者搭建方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文標(biāo)點(diǎn)輸入無效的完美解決方法

    Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文標(biāo)點(diǎn)輸入無效的完美解決方法

    Mac OS X 下基于 Java 的程序會(huì)出現(xiàn)中文標(biāo)點(diǎn)輸入無效的問題,在中文輸入法狀態(tài),可以輸入中文字,但輸入中文標(biāo)點(diǎn)最后上去的是英文標(biāo)點(diǎn).這篇文章主要介紹了Mac OS X 下 IntelliJ IDEA、jEdit 等 Java 程序中文標(biāo)點(diǎn)輸入無效的完美解決方法,需要的朋友可以參考下
    2016-10-10
  • SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)建增刪改查示例應(yīng)用

    SpringBoot3整合 Elasticsearch 8.x 使用Repository構(gòu)

    我們構(gòu)建了一個(gè)完整的 Spring Boot 3 和 Elasticsearch 8.x 的增刪改查示例應(yīng)用,使用 Spring Data Elasticsearch Repository,我們能夠快速實(shí)現(xiàn)對(duì) Elasticsearch 的基本 CRUD 操作,簡(jiǎn)化了開發(fā)流程,希望這個(gè)示例能夠幫助你理解如何在項(xiàng)目中有效使用 Elasticsearch!
    2024-11-11
  • Java servlet執(zhí)行流程代碼實(shí)例

    Java servlet執(zhí)行流程代碼實(shí)例

    這篇文章主要介紹了Java servlet執(zhí)行流程代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • IntelliJ IDEA(或者JetBrains PyCharm)中彈出

    IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA(或者JetBrains PyCharm)中彈出"IntelliJ IDEA License Activation"的解決辦法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 詳解Java數(shù)組的一維和二維講解和內(nèi)存顯示圖

    詳解Java數(shù)組的一維和二維講解和內(nèi)存顯示圖

    這篇文章主要介紹了Java數(shù)組的一維和二維講解和內(nèi)存顯示圖,數(shù)組就相當(dāng)于一個(gè)容器,存放相同類型數(shù)據(jù)的容器。而數(shù)組的本質(zhì)上就是讓我們能 "批量" 創(chuàng)建相同類型的變量,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

马尔康县| 黔东| 宝坻区| 德清县| 娄烦县| 洪泽县| 固原市| 漾濞| 盘锦市| 济南市| 郸城县| 兴仁县| 家居| 裕民县| 弥渡县| 德昌县| 大足县| 壶关县| 安新县| 巴彦县| 烟台市| 德清县| 中卫市| 岑溪市| 如东县| 泰宁县| 千阳县| 登封市| 友谊县| 万荣县| 宜宾市| 铜梁县| 临安市| 仁寿县| 库伦旗| 益阳市| 萍乡市| 伊宁市| 景宁| 柞水县| 司法|