使用准备好的语句批量插入Java中的数据

8 浏览
0 Comments

使用准备好的语句批量插入Java中的数据

我正在尝试使用Java填充一个包含大约50,000行10列的resultSet,然后使用PreparedStatementbatchExecute方法将它们插入另一个表中。

为了加快流程,我进行了一些研究,发现在读取数据到resultSet时,fetchSize起着重要作用。

fetchSize设置得太低可能导致向服务器发送过多请求,而设置得太高可能会阻塞网络资源,因此我进行了一些实验,找到了适合我的基础设施的最佳大小。

我正在读取这个resultSet,并创建插入语句以插入到另一个不同数据库的表中。

类似这样(只是示例,不是真正的代码):

for (i=0 ; i<=50000 ; i++) {
    statement.setString(1, "[email protected]");
    statement.setLong(2, 1);
    statement.addBatch();
}
statement.executeBatch();

  • executeBatch方法会尝试一次性发送所有数据吗?
  • 有没有办法定义批处理大小?
  • 有没有更好的方法来加快批量插入的流程?

在批量更新(50,000行10列)时,使用可更新的ResultSet还是具有批处理执行的PreparedStatement更好?

0