场景
前端传递一个部门id的数组作为查询条件查询部门id在这个数组中的数据。
在MyBatis的xml中获取到了这个数组参数后怎样进行if-test的判空与长度判断。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
在mapper接口层传递数组参数
public List<KqDksz> selectKqDkszListBySx(@Param("array") int[] bmids, String xm, String dkzt);
然后在对应的xml中
<select id="selectKqDkszListBySx" resultMap="KqDkszResult"> <include refid="selectKqDkszVoJoinJibenXinXi"/> <where> <if test="array != null and array.length >0"> and j.bmid in <foreach collection="array" item="item" open="(" separator="," close=")"> ${item} </foreach> </if> </where> </select>
这里就可以通过array获取传递的数组并遍历。
这里的数组参数不是必传的,所以需要加if-test的判断
<if test="array != null and array.length >0">
首先判断其不为空,并且判断其长度大于0。因为有可能传递空数组的情况。
因为这里是传递的数组对象,所以这里是使用的array.length属性
注意length不是方法
但是如果传递的参数时list的话,就要使用如下方式
<if test="list != null and list.size() > 0">
博客园:
https://www.cnblogs.com/badaoliumangqizhi/
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。