用mybatis写一个循环遍历list<map>的语句
时间: 2024-05-08 19:20:14 浏览: 114
mybatis-demo11-动态SQL语句.zip
好的,您可以参考以下的代码示例:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 假设list这里已经被赋值了,这里只是为了演示
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
Map<String, Object> params = new HashMap<>();
params.put("list", list);
sqlSession.selectList("mybatis.mapper.namespace.loopThroughList", params);
} finally {
sqlSession.close();
}
```
上面的代码中,我们传入了一个名为`list`的集合参数给mybatis的SQL映射语句,在映射文件中可以像下面这样写:
```xml
<!-- 假设我们的映射文件的命名空间是'mybatis.mapper.namespace' -->
<select id="loopThroughList" parameterType="map" resultType="java.util.Map">
SELECT * FROM table_name WHERE column_name IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
这里我们使用了`<foreach>`标签来循环遍历传入的`list`,`collection`属性表示集合参数的名称(在参数map中对应的key),`item`属性表示当前遍历到的元素,`open`、`separator`和`close`属性分别表示循环的开始、元素之间的分隔符和循环的结束。需要注意的是,我们在SQL语句中使用了`#{item}`来代替`list`集合中的每个元素。
阅读全文