JDBC 的 executeBatch() 是并行执行语句还是一个接一个地执行语句



我想从postgreSQL数据库中的多个表中删除条目。这些表有外键约束,所以我只需要按特定顺序删除它们(否则删除将失败(。

我正在考虑将它们添加到一个批次中,并运行executeBatch((

我知道executeBatch将所有语句一起提交给驱动程序,但语句是如何执行的?删除的顺序是否会按照添加到批次的顺序进行维护?我找不到API文档中提到的内容

JDBC 4.3规范在14.1.2成功执行部分明确指定了批执行的行为:

批处理命令按顺序串行执行(至少在逻辑上(其中它们被添加到该批次中。

数组中的条目按照命令已被处理(同样,这与中的顺序相同命令最初被添加到批中(。

;至少在逻辑上"为数据库提供了一些重新排序的余地作为优化,只要得到的行为与按指定顺序执行批处理的行为相同。按顺序执行对于确保返回的更新计数匹配以及异常行为也是必要的。

它们按顺序执行。

";批处理";是收集SQL语句并将其作为一个块、一系列语句进行传输,以减少与数据库服务器通信的网络开销。

一个完整的";发送SQL,等待响应";这需要时间,所以通过同时发送多个请求,可以消除大量的等待时间。

相关内容

  • 没有找到相关文章

最新更新