mybatis mysql 插入数据 foreach
时间: 2025-01-02 21:34:20 浏览: 9
### 使用 MyBatis 和 MySQL 的 `foreach` 标签批量插入数据
#### 创建 Mapper 接口方法定义
为了执行批量插入操作,首先需要在Mapper接口中定义相应的方法。假设有一个名为`User`的对象列表要被插入到数据库中的`user_test`表。
```java
public interface UserMapper {
int addBatch(List<User> userList);
}
```
此方法接收一个`User`对象的列表作为参数,并返回受影响的行数[^5]。
#### 编写 XML 映射文件配置
接着,在对应的XML映射文件中编写SQL语句来完成批量插入功能:
```xml
<insert id="addBatch" useGeneratedKeys="true" keyColumn="id" parameterType="list">
INSERT INTO user_test(userName, age, info)
VALUES
<foreach collection="list" separator="," item="user" index="index">
(#{user.userName}, #{user.age}, #{user.info})
</foreach>
</insert>
```
这段代码实现了向`user_test`表中插入多个记录的功能。其中:
- `collection="list"`表示传入的是一个列表;
- `separator=","`用于指定分隔符,这里是逗号;
- `item="user"`代表当前迭代项的别名;
- `index="index"`则是索引变量名称;
每次循环都会生成一组括起来的值,这些组之间由逗号连接形成完整的VALUES部分。
#### Java 实体类设计
确保存在相应的Java实体类以匹配数据库字段:
```java
public class User {
private Integer id;
private String userName;
private Integer age;
private String info;
// Getters and Setters...
}
```
这样就完成了基于MyBatis框架下使用MySQL进行批量插入的操作设置。
阅读全文