mybatis if条件 多个值

132 阅读1分钟

解决方法

使用foreach标签

<if test="values != null and values.size > 0">
    AND column_name IN
    <foreach collection="values" item="value" open="(" separator="," close=")">
        #{value}
    </foreach>
</if>

java代码里的参数的数据类型是啥?

List

dao

参数是List

import java.util.List;

public interface UserMapper {
    List<User> getUsersByIds(List<Integer> ids);
}

service

这里可能需要转换一下,比如如果前端传过来的是字符串,那么就要转换为List

List<Integer> ids = Arrays.asList(1, 2, 3);
List<User> users = userMapper.getUsersByIds(ids);

前端

json List或者字符串拼接的

如果是字符串拼接,后端需要先转换一下