溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis plus中使用in查詢出錯的解決方法

發布時間:2020-08-10 10:22:11 來源:億速云 閱讀:466 作者:小新 欄目:開發技術

小編給大家分享一下Mybatis plus中使用in查詢出錯的解決方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我的情況是這樣的,在使用mybatis plus提供的QueryWrapper方法里的in查詢時,我的參數為類似“1,2,3,4”這樣的字符串

	//要查的參數
    String masterIds = "81554,5654,55948,48945";

    QueryWrapper<FpjyPauperInfo> pauperqw = new QueryWrapper<>();
    pauperqw.in("user_id",masterIds);

		UserInfoService.list(pauperqw);

結果返回的數據與在數據庫查出來的數據不一樣(這是我的情況,不知道你們會不會這樣),我看了控制臺的sql代碼

==> Preparing:SELECT user_id,user_name,update_job_dt,group_name,create_dt,create_by,
update_dt,update_by FROM fpjy_pauper_info WHERE (user_id IN (&#63;)) 
==> Parameters: 81554,5654,55948,48945(String)
<==   Total: 0

查詢錯誤原因

我就在網上早了一下發現,在使用mybatis plus提供的QueryWrapper方法時,你給它的參數是String類型時,在控制臺上看著是對的,但是他會默認在參數的前面和后面加上單引號,因為在mybatis plus里
的xml配置文件里(類似于UserInfoMapper.xml的文件),給的參數是用 #{參數名} 的方式

//這段代碼只是舉個例子
    SELECT * FROM userinfo WHERE (user_id IN (#{ids}))

解決方法

這只是我這種情況的解決方法哦
找到你要使用的對象的xml文件(類似于UserInfoMapper.xml的文件)在里面自定義sql語句代碼,給參數要用 ${參數名} 的方式,不會自定義sql語句可以去網上查查,網上有太多了,在這里我就不寫了。

//這段代碼只是舉個例子
    SELECT * FROM userinfo WHERE (user_id IN (${ids}))

控制臺sql語句輸出結果

==>  Preparing:SELECT * FROM fpjy_pauper_info WHERE (user_id IN (81554,5654,55948,48945))
==> Parameters:
<==      Total: 4

以上是Mybatis plus中使用in查詢出錯的解決方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女