Mybatis条件中有list怎么写
时间: 2024-11-05 08:32:00 浏览: 21
在MyBatis中,当你有一个SQL查询需要基于List类型的参数执行IN操作时,可以使用`<foreach>`标签来实现多条件参数。这是XML映射文件中的示例:
1. **XML配置**:
```xml
<update id="updateHiveShow" parameterType="map">
<if test="manager != null && !manager.isEmpty() && ids != null && ids.size() > 0">
UPDATE hiveShow
SET manager = #{manager}
WHERE manager = #{managerParam}
AND id IN
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</update>
```
这里假设`manager`是一个单独的参数,而`ids`是需要遍历的List。
2. **调用Mapper**:
在Java代码中,你可以这样调用这个更新方法:
```java
Map<String, Object> params = new HashMap<>();
params.put("manager", "张三");
List<Integer> ids = Arrays.asList(10, 20, 45);
params.put("managerParam", "lisi");
params.put("ids", ids);
yourMapper.updateHiveShow(params);
```
当传入的`ids`集合不为空且大小大于0,MyBatis就会自动将每个id插入到SQL的IN子句中,形成完整的更新条件。
阅读全文