博主介紹:?全網粉絲22W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域?
技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。
感興趣的可以先關注收藏起來,在工作中、生活上等遇到相關問題都可以給我留言咨詢,希望幫助更多的人。
在mybatis-plus中 if test標簽如何判斷 list不為空
- 一、使用 != null 和 size() > 0
- 二、 使用 !empty
- 三、注意事項
- 四、完整示例
- 五、總結
在
MyBatis-Plus
中,
<if test="...">
標簽用于動態生成 SQL 語句。如果需要判斷一個 List 是否不為空,可以使用以下方法:
一、使用 != null 和 size() > 0
在 test 表達式中,可以通過 != null
判斷 List 是否為 null,并通過size() > 0
判斷 List 是否非空。
示例:
<select id="selectUsers" resultType="User">SELECT * FROM userWHERE 1 = 1<if test="userList != null and userList.size() > 0">AND id IN<foreach collection="userList" item="item" open="(" separator="," close=")">#{item}</foreach></if>
</select>
說明:
-
userList != null
:判斷userList
是否為null
。 -
userList.size() > 0
:判斷userList 是否非空
。
二、 使用 !empty
MyBatis
提供了 empty
關鍵字,可以簡化判斷邏輯。!empty
會同時檢查對象是否為 null
和是否為空
集合。
示例:
<select id="selectUsers" resultType="User">SELECT * FROM userWHERE 1 = 1<if test="!empty(userList)">AND id IN<foreach collection="userList" item="item" open="(" separator="," close=")">#{item}</foreach></if>
</select>
說明:
!empty(userList)
:等同于userList != null and userList.size() > 0
。
三、注意事項
-
如果
List
是null
,直接調用 size() 會拋出NullPointerException
,因此需要先判斷!= null
。 -
!empty()
是更簡潔的寫法,推薦使用。
四、完整示例
假設有一個查詢方法,根據傳入的List<Long>
查詢用戶信息:
List<User> selectUsers(@Param("userList") List<Long> userList);
對應的 XML 配置:
<select id="selectUsers" resultType="User">SELECT * FROM userWHERE 1 = 1<if test="!empty(userList)">AND id IN<foreach collection="userList" item="item" open="(" separator="," close=")">#{item}</foreach></if>
</select>
五、總結
推薦使用 !empty(list)
來判斷 List 是否非空,因為它更簡潔且安全。
如果需要顯式判斷,可以使用 list != null and list.size() > 0
。
確保傳入的 List 參數在方法中正確使用 @Param
注解。
好了,今天分享到這里。希望你喜歡這次的探索之旅!不要忘記 “點贊” 和 “關注” 哦,我們下次見!🎈
本文完結!
祝各位大佬和小伙伴身體健康,萬事如意,發財暴富,掃下方二維碼與我一起交流!!!