java - JdbcBatchItemWriter 多线程

标签 java spring jdbc spring-batch

有没有办法对 JdbcBatchItemWriter 进行多线程处理。 我有一个批处理应该插入许多行(+ 1M 行)。

@Bean
public JdbcBatchItemWriter<MyDTO> InitWriter() {
    JdbcBatchItemWriter<MyDTO> writer = new JdbcBatchItemWriter<MyDTO>();
    writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<MyDTO>());
    writer.setSql("INSERT INTO ....");
    writer.setDataSource(cloudDataSource);

    return writer;
}

这花了我很长时间。

最佳答案

JdbcBatchItemWriter 是线程安全的,因此您可以在多个并发事务中使用它。以下是其 Javadoc 的摘录:

The writer is thread-safe after its properties are set (normal singleton behavior), so it can be used to write in multiple concurrent transactions.

因此,就您的情况而言,您可以尝试使用 Multi-threaded Step看看它是否可以提高您的工作绩效。

关于java - JdbcBatchItemWriter 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60400598/

相关文章:

java - Spring LDAP 安全性不断重置

没有事务的 Java Google Appengine 分片计数器

java - 例程(get_data_type)无法解析

spring - 无法从数据库 ERROR 中获取 SequenceInformation 但一切正常

java - 将嵌入式 H2 数据库加载到内存

java -\r\n 从 DB 和 Java 读取时的编码问题

spring - 版本健全性检查 (Spring/SLF4J)

java - 在 Windows 服务中运行 Spring Integration;不为 "Trigger"入站

java - 使用 JDBC for Oracle 迭代 ResultSet 需要花费大量时间,大约 16 秒?

java - 如何让 JDBC MYSQL 中的主键区分大小写?