mybatis存储list<map>的sql语句
时间: 2023-06-23 07:09:12 浏览: 147
输出mybatis的sql执行语句的方法
假设你要将一个 List<Map<String, Object>> 中的数据存储到数据库中,可以使用 MyBatis 的 foreach 标签来实现。具体的 SQL 语句如下:
```xml
<insert id="insertList" parameterType="java.util.List">
insert into table_name (column1, column2, column3)
values
<foreach collection="list" item="map" separator=",">
(#{map.column1}, #{map.column2}, #{map.column3})
</foreach>
</insert>
```
其中,`list` 是传入的 List<Map<String, Object>>,`map` 是其中的每个 Map 对象,`column1`、`column2`、`column3` 分别是每个 Map 对象中需要存储到数据库的列。
注意,如果要保存的列名是动态的,可以使用 `${}` 占位符。例如:
```xml
<insert id="insertList" parameterType="java.util.List">
insert into table_name
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection="list[0]" item="value" index="key">
${key},
</foreach>
</trim>
values
<foreach collection="list" item="map" separator=",">
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection="map" item="value" index="key">
#{value},
</foreach>
</trim>
</foreach>
</insert>
```
这个例子中,列名是通过解析第一个 Map 对象的 key 来动态生成的。
阅读全文