<if test="ids!=null and ids.size()>0">
and ids in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="id != null ">
AND id = #{id,jdbcType=INTEGER}
</if>
以上操作会导致第一个foreach里的id变量传递到第二个if判断,从而导致数据错误。