博主介绍:✌全网粉丝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
注解。
好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈
本文完结!
祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!