mybatis 编写insert sql 处理foreach list<map>集合样例
时间: 2024-03-14 09:46:46 浏览: 130
假设我们有一个名为`User`的实体类,其中包含`id`和`name`两个属性,我们要将多个`User`对象插入到数据库中,可以按照以下步骤进行编写:
1. 在Mapper.xml文件中编写insert语句,使用foreach标签处理List<Map>集合:
```xml
<insert id="batchInsertUsers" parameterType="java.util.List">
insert into user(id, name)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id}, #{item.name})
</foreach>
</insert>
```
2. 在Mapper接口中定义该方法:
```java
public interface UserMapper {
void batchInsertUsers(List<User> userList);
}
```
3. 调用该方法:
```java
List<User> userList = new ArrayList<>();
// 添加多个User对象到List中
userMapper.batchInsertUsers(userList);
```
注意,这里的`User`对象需要按照数据库中表的字段顺序依次添加到Map中,或者使用`@Param`注解指定参数名称,例如:
```java
void batchInsertUsers(@Param("users") List<User> userList);
```
在Mapper.xml文件中使用`#{users.id}`和`#{users.name}`来引用参数。
阅读全文