mybatis的批量插入mapper层和xml层如何写
时间: 2024-08-14 22:10:00 浏览: 97
MyBatis 的批量插入通常涉及到 Mapper XML 文件中的 `foreach` 元素配合 Java 对象数组或 List 来操作数据库。以下是基本步骤:
**Mapper XML 文件编写**:
```xml
<insert id="batchInsert" parameterType="java.util.List<UserEntity)">
INSERT INTO user (name, email)
VALUES
<foreach item="item" index="index" collection="list" open="(" separator="), (" close=")">
(?, ?),
</foreach>
</insert>
```
在这个例子中,`UserEntity` 是你需要插入的数据实体,`name` 和 `email` 是表中的字段名。`<foreach>` 遍历 `list` 中的每个元素,并使用占位符 `?` 插入对应值。
**Java 层的代码**:
```java
List<UserEntity> userList = new ArrayList<>();
// 添加需要插入的对象到 list 中...
int affectedRows = sqlSession.insert("batchInsert", userList);
```
`sqlSession.insert` 方法会调用 mapper 中的 `batchInsert`,并将数据列表作为参数传递。
**注意事项**:
1. 使用 `BatchExecutor` 可能更高效,可以减少 SQL 交互次数。
2. 如果数据量很大,应考虑分批插入,避免一次性加载所有数据导致内存溢出。
阅读全文