在xml编写动态sql语句,使用到了foreach,用于遍历一个数组
select *
from sys_user
where del_flag = '0'
and user_id in
<foreach item="userId" collection="array" open="(" separator="," close=")">
#{userId}
</foreach>
反复、仔细的审查了SQL语句,始终认为这条sql没写错,放在Navicat中也能运行获取到数据。
最后意识到了一点:传入的参数是有值的数组可以查询数据,如果传入的数组没有值呢?然后我在业务层做了一个逻辑判断
if(ids.length > 0) { // 当数组的长度大于0时才进行此sql查询
List<SysUser> users = sysUserMapper.selectUsersByTeamIdApp(ids);
team.setUsers(users);
}
加了这个逻辑判断后,就能正常运行了