in src/main/java/org/apache/commons/dbutils/QueryRunner.java [470:503]
public <T> T insertBatch(final Connection conn, final String sql, final ResultSetHandler<T> rsh, final Object[][] params) throws SQLException {
if (conn == null) {
throw new SQLException("Null connection");
}
if (sql == null) {
throw new SQLException("Null SQL statement");
}
if (params == null) {
throw new SQLException("Null parameters. If parameters aren't need, pass an empty array.");
}
PreparedStatement stmt = null;
T generatedKeys = null;
try {
stmt = this.prepareStatement(conn, sql, Statement.RETURN_GENERATED_KEYS);
for (final Object[] param : params) {
this.fillStatement(stmt, param);
stmt.addBatch();
}
stmt.executeBatch();
try (ResultSet resultSet = stmt.getGeneratedKeys()) {
generatedKeys = rsh.handle(resultSet);
}
} catch (final SQLException e) {
rethrow(e, sql, (Object[])params);
} finally {
close(stmt);
}
return generatedKeys;
}