每个人都说批量更新减少了JDBC调用的次数.有人可以解释"JDBC调用"的含义,以及与在一次JDBC调用中携带整个负载相比,此类调用的数量增加的成本是多少.
jon*_*one 10
通俗地说,当开发人员使用JDBC调用这一短语时,他们谈论的是通过线路将信息发送到数据库.JDBC API的批处理功能允许您在单个网络调用中提交多个离散操作,而不是调用每个SQL语句.从JDBC规范:
批处理更新工具允许Statement对象将一组异构SQL语句作为单个单元或批处理一起提交给基础数据源.
对于PreparedStatement,只存在创建单个语句的额外好处.这允许您使用多组绑定参数执行相同的查询,而无需多次将语句本身添加到批处理中.最终结果是减少了网络流量及其相关的开销.
规范中的一个例子:
PreparedStatement stmt = con.prepareStatement(
"INSERT INTO employees VALUES (?, ?)");
stmt.setInt(1, 2000);
stmt.setString(2, "Kelly Kaufmann");
stmt.addBatch();
stmt.setInt(1, 3000);
stmt.setString(2, "Bill Barnes");
stmt.addBatch();
// submit the batch for execution
int[] updateCounts = stmt.executeBatch();
Run Code Online (Sandbox Code Playgroud)