private void runWithNamedParametersBatch(Connection connection, OperationObserver callback, String template, Collection<Number> counts, boolean loggable) throws Exception { int size = query.parametersSize(); // zero size indicates a one-shot query with no parameters // so fake a single entry batch... int batchSize = (size > 0) ? size : 1; // for now supporting deprecated batch parameters... @SuppressWarnings("unchecked") Iterator<Map<String, ?>> it = (size > 0) ? query.parametersIterator() : (Iterator)Collections.singleton(Collections.emptyMap()).iterator(); for (int i = 0; i < batchSize; i++) { Map<String, ?> nextParameters = it.next(); SQLStatement compiled = dataNode.getSqlTemplateProcessor().processTemplate(template, nextParameters); bindExtendedTypes(compiled.getBindings()); if (loggable) { dataNode.getJdbcEventLogger().logQuery(compiled.getSql(), compiled.getBindings()); } execute(connection, callback, compiled, counts); } }
int size = query.parametersSize();