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

mybatis plus in使用時傳數(shù)組、集合的注意點說明

 更新時間:2023年11月20日 16:19:22   作者:勤快的小螞蟻  
這篇文章主要介紹了mybatis plus in使用時傳數(shù)組、集合的注意點說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

大家用mybatis plus時,肯定會用到in。

in在傳多個值的時候,有1個坑。

復(fù)現(xiàn)

1、postman 給 傳入了

{
"signContractStatus":"0,1"
}

2、代碼in傳入了一個三目表達式 StringUtils.isNotBlank(signContractStatus)?signContractStatusArray:0

其中的signContractStatusArray的定義如下

String[] signContractStatusArray = new String[3];

3、通過分隔函數(shù)把變成字符串?dāng)?shù)組signContractStatusArray傳入in

執(zhí)行結(jié)果

==>  Preparing: SELECT COUNT(*) AS total FROM t_customer_sign_record WHERE (oa_id = ? AND sign_contract_status IN (?))
==> Parameters: lvying(String), [Ljava.lang.String;@3b6b4d6(String[])
<==    Columns: total
<==        Row: 0
<==      Total: 0

可以看到 傳入的參數(shù) ,在數(shù)據(jù)庫中是應(yīng)該有數(shù)據(jù)返回的,結(jié)果沒有返回,說明問題出在這里。

糾正

不要傳上面的傳模棱兩可的參數(shù)(如三目運算符),這樣jvm會給你意想不到的結(jié)果,直接傳serviceRelationArray即可。

.in(StringUtils.isNotBlank(serviceRelation), TCustomerSignRecordEntity::getServiceRelation, serviceRelationArray)

正確執(zhí)行結(jié)果

==>  Preparing: SELECT COUNT(*) AS total FROM t_customer_sign_record WHERE (oa_id = ? AND sign_contract_status IN (?, ?))
==> Parameters: lvying(String), 0(String), 1(String)
<==    Columns: total
<==        Row: 13
<==      Total: 1
 

這樣就能得到我們想要的Parameters了,大功告成!??!

總結(jié)in的使用

正確姿勢一(List集合):

List ids = Arrays.asList(122L,23L);
new QueryWrapper().lambda().in(Driver::getServiceId,ids);

正確姿勢二(數(shù)組對象):

Long[] ids={1305679009380433922,1305679009380433922};
LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda().in(Driver::getServiceId,ids);

正確姿勢三(離散值):

new QueryWrapper().lambda()
.in(Driver::getServiceId,1305679009380433922,1305679009380433922);

錯誤姿勢一(模棱兩可的三目表達式):

.in(StringUtils.isNotBlank(vo.getOrderNumList()),ScbgOrder::getOrderNo,
StringUtils.isNotBlank(vo.getOrderNumList())? vo.getOrderNumList().split(",") : "")

錯誤姿勢二(直接傳逗號分隔字符串):

這種也會有出現(xiàn)

.in(StringUtils.isNotBlank(vo.getOrderNumList()),ScbgOrder::getOrderNo,"123,4566");

也會出現(xiàn)意想不到的Parameters。

==> Preparing: SELECT * FROM emax_scbg_order WHERE order_no IN (?)

==> Parameters: 1,3(String)

<== Total: 0

總結(jié)

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

相關(guān)文章

  • IDEA怎么設(shè)置maven配置

    IDEA怎么設(shè)置maven配置

    這篇文章主要介紹了IDEA怎么設(shè)置maven配置,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Spring Boot Admin實踐詳解

    Spring Boot Admin實踐詳解

    在本篇文章里小編給大家整理了關(guān)于Spring Boot Admin實踐的相關(guān)知識點,有需要的朋友們可以學(xué)習(xí)下。
    2019-12-12
  • Java 位運算符>>與>>>區(qū)別案例詳解

    Java 位運算符>>與>>>區(qū)別案例詳解

    這篇文章主要介紹了Java 位運算符>>與>>>區(qū)別案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java 獲取上一個月的月份的正確寫法

    Java 獲取上一個月的月份的正確寫法

    這篇文章主要介紹了java獲取上一個月月份,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Java如何實現(xiàn)實體類轉(zhuǎn)Map、Map轉(zhuǎn)實體類

    Java如何實現(xiàn)實體類轉(zhuǎn)Map、Map轉(zhuǎn)實體類

    這篇文章主要介紹了Java 實現(xiàn)實體類轉(zhuǎn)Map、Map轉(zhuǎn)實體類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • springboot項目獲取請求頭當(dāng)中的token的方法

    springboot項目獲取請求頭當(dāng)中的token的方法

    本文主要介紹了springboot項目獲取請求頭當(dāng)中的token的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 詳解Spring中的@Scope注解

    詳解Spring中的@Scope注解

    這篇文章主要介紹了詳解Spring中的@Scope注解,@Scope注解是Spring IOC容器中的一個作用域,在Spring IOC容器中,他用來配置Bean實例的作用域?qū)ο?需要的朋友可以參考下
    2023-07-07
  • 分析mybatis運行原理

    分析mybatis運行原理

    Mybatis是一個優(yōu)秀的持久層框架,它對JDBC操作數(shù)據(jù)庫的過程進行封裝,使開發(fā)者只需要關(guān)注sql本身。我們原來使用JDBC操作數(shù)據(jù)庫,需要手動的寫代碼去注冊驅(qū)動、獲取connection、獲取statement等等,現(xiàn)在Mybaits幫助我們把這些事情做了,我們只需要關(guān)注我們的業(yè)務(wù)sql即可
    2021-06-06
  • Maven Plugins報錯的解決方法

    Maven Plugins報錯的解決方法

    本文主要介紹了Maven Plugins報錯的解決方法,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Java動態(tài)代理分析及理解

    Java動態(tài)代理分析及理解

    這篇文章主要介紹了Java動態(tài)代理分析及理解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評論