Mybaties 批量数据入库 batch
时间: 2023-09-24 07:11:31 浏览: 49
使用 MyBatis 进行批量数据入库可以使用以下步骤:
1. 在 MyBatis 的配置文件中添加 `batch` 属性:
```xml
<configuration>
<settings>
<setting name="jdbc.batch_size" value="1000"/>
</settings>
</configuration>
```
2. 在 SQL 映射文件中使用 `foreach` 标签进行批量插入:
```xml
<insert id="batchInsert" parameterType="java.util.List">
insert into table_name (col1, col2, col3) values
<foreach collection="list" item="item" separator=",">
(#{item.col1}, #{item.col2}, #{item.col3})
</foreach>
</insert>
```
3. 在 Java 代码中调用批量插入方法:
```java
try (SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
Mapper mapper = session.getMapper(Mapper.class);
List<Entity> list = new ArrayList<>();
// add data to list
for (Entity entity : list) {
mapper.insert(entity);
}
session.commit();
}
```
其中,`jdbc.batch_size` 属性用于设置批量操作的大小,可以根据实际情况进行调整。使用 MyBatis 进行批量插入时,可以将多条 SQL 语句放在同一批次中进行执行,从而提高插入效率。需要注意的是,当批量插入的数据量较大时,可能会出现内存溢出的问题,此时需要适当调整 `jdbc.batch_size` 属性的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)