Mybaties 批量数据入库 oracle
时间: 2024-03-17 20:43:44 浏览: 71
Java使用Mybatis将数据批量插入到Oracle
使用 MyBatis 进行批量数据入库到 Oracle 可以使用以下步骤:
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="union all">
select #{item.col1}, #{item.col2}, #{item.col3} from dual
</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
mapper.batchInsert(list);
session.commit();
}
```
其中,`jdbc.batch_size` 属性用于设置批量操作的大小,可以根据实际情况进行调整。同时,需要注意在使用 `SqlSession` 进行批量操作时,需要指定执行器类型为 `BATCH`。在 Oracle 中,使用 `from dual` 语句可以避免出现错误,同时使用 `union all` 可以提高插入效率。
阅读全文