相关疑难解决方法(0)

使用预准备语句批量更新在Java中批量插入

我试图用Java填充一个带有大约50,000行10列的结果集,然后使用batchExecute方法将它们插入到另一个表中PreparedStatement.

为了使这个过程更快,我做了一些研究,发现在将数据读入resultSet时,fetchSize起着重要的作用.

拥有一个非常低的fetchSize可能导致太多的服务器访问,并且非常高的fetchSize可以阻止网络资源,所以我尝试了一点,并设置了适合我的基础设施的最佳大小.

我正在读取此resultSet并创建插入语句以插入到另一个数据库的另一个表中.

像这样的东西(只是一个样本,而不是真正的代码):

for (i=0 ; i<=50000 ; i++) {
    statement.setString(1, "a@a.com");
    statement.setLong(2, 1);
    statement.addBatch();
}
statement.executeBatch();
Run Code Online (Sandbox Code Playgroud)
  • executeBatch方法是否会尝试一次发送所有数据?
  • 有没有办法定义批量大小?
  • 有没有更好的方法来加快批量插入的过程?

在批量更新(50,000行10列)时,使用可更新ResultSet或PreparedStaement批量执行是否更好?

java bulkinsert resultset prepared-statement

30
推荐指数
2
解决办法
7万
查看次数

标签 统计

bulkinsert ×1

java ×1

prepared-statement ×1

resultset ×1