/** * Create an array of {@link SqlParameterSource} objects populated with data * from the values passed in (either a {@link Map} or a bean object). * This will define what is included in a batch operation. * @param candidates object array of objects containing the values to be used * @return an array of {@link SqlParameterSource} * @see MapSqlParameterSource * @see BeanPropertySqlParameterSource * @see NamedParameterJdbcTemplate#batchUpdate(String, SqlParameterSource[]) */ @SuppressWarnings("unchecked") public static SqlParameterSource[] createBatch(Object... candidates) { return createBatch(Arrays.asList(candidates)); }
SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource); for (String column : this.tableColumns) { if (parameterSource.hasValue(column)) { values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, column)); values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName)); values.add(SqlParameterSourceUtils.getTypedValue( parameterSource, caseInsensitiveParameterNames.get(lowerCaseName)));
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected Map<String, Object> doExecute(SqlParameterSource parameterSource) { // Have only the declared parameters participate in the function metadata extraction, otherwise the // CallMetaDataContext thinks that the returned column names are parameters. getInParameterNames().addAll( SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource).keySet()); checkCompiled(); Map params = matchInParameterValuesWithCallParameters(parameterSource); return executeCallInternal(params); }
private CallCreator createCallForRead(final String procedureName, final RowMapper<?> mapper, final MapSqlParameterSource parameterSource) { return () -> { SimpleJdbcCall call = (SimpleJdbcCall) dialect.createJdbcCallForQuery(jdbcTemplate).withProcedureName(procedureName); call.returningResultSet(RETURN_VALUE_PARAMETER, mapper); // Pass mapper information (only parameter names) in order to supply all the needed // metadata information for compilation. call.getInParameterNames().addAll( SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource).keySet()); return call; }; }
SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource); if (parameterSource.hasValue(parameterName)) { matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, parameterName)); if (parameterSource.hasValue(lowerCaseName)) { matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); if (parameterSource.hasValue(englishLowerCaseName)) { matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, englishLowerCaseName)); if (parameterSource.hasValue(propertyName)) { matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName)); String sourceName = caseInsensitiveParameterNames.get(lowerCaseName); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, sourceName));
@Override public int[] batchUpdate(String sql, Map<String, ?>[] batchValues) { return batchUpdate(sql, SqlParameterSourceUtils.createBatch(batchValues)); }
SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource); for (String column : this.tableColumns) { if (parameterSource.hasValue(column)) { values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, column)); values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName)); values.add(SqlParameterSourceUtils.getTypedValue( parameterSource, caseInsensitiveParameterNames.get(lowerCaseName)));
@Override public int[] executeBatchByCollectionBeans(String sql, Collection<?> beanParameters) { Assert.hasText(sql, "sql语句不正确!"); logger.info("SQL:" + sql); logger.info("-- SQL参数:[{}]", beanParameters); if (beanParameters != null && !beanParameters.isEmpty()) { SqlParameterSource[] batch = SqlParameterSourceUtils.createBatch(beanParameters.toArray()); int[] affects = namedParameterJdbcTemplate.batchUpdate(sql, batch); logger.info("-- 响应条目:[{}]", Arrays.toString(affects)); return affects; } return null; }
SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource); for (String column : this.tableColumns) { if (parameterSource.hasValue(column)) { values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, column)); values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName)); SqlParameterSourceUtils.getTypedValue(parameterSource, (String) caseInsensitiveParameterNames.get(lowerCaseName)));
@Override public Object batchUpdate(List values, String sql, boolean detailedOutput) { SqlParameterSource[] batch; if (values.get(0) instanceof Map) { Map[] arrayForTransfer = new Map[values.size()]; values.toArray(arrayForTransfer); batch = SqlParameterSourceUtils.createBatch(arrayForTransfer); } else { batch = SqlParameterSourceUtils.createBatch(values.toArray()); } int[] updateCounts = jdbcTemplate.batchUpdate(sql, batch); return detailedOutput ? updateCounts : getSum(updateCounts); }
SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, parameterName)); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, englishLowerCaseName)); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName)); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, sourceName));
@Override public int[] executeBatchByArrayBeans(String sql, Object... beanParameters) { Assert.hasText(sql, "sql语句不正确!"); logger.info("SQL:" + sql); logger.info("-- SQL参数:[{}]", Arrays.toString(beanParameters)); if (beanParameters != null && beanParameters.length > 0) { SqlParameterSource[] batch = SqlParameterSourceUtils.createBatch(beanParameters); int[] affects = namedParameterJdbcTemplate.batchUpdate(sql, batch); logger.info("-- 响应条目:[{}]", Arrays.toString(affects)); return affects; } return null; }
SqlParameterSourceUtils.extractCaseInsensitiveParameterNames(parameterSource); if (parameterSource.hasValue(parameterName)) { matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, parameterName)); if (parameterSource.hasValue(lowerCaseName)) { matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName));
@SafeVarargs @Override public final int[] executeBatchByArrayMaps(String sql, Map<String, Object>... mapParameters) { Assert.hasText(sql, "sql语句不正确!"); logger.info("SQL:" + sql); logger.info("-- SQL参数:[{}]", Arrays.toString(mapParameters)); if ((mapParameters != null) && (mapParameters.length > 0)) { SqlParameterSource[] mapSqlParamSource = SqlParameterSourceUtils.createBatch(mapParameters); int[] affects = namedParameterJdbcTemplate.batchUpdate(sql, mapSqlParamSource); logger.info("-- 响应条目:[{}]", Arrays.toString(affects)); return affects; } return null; }
return batchUpdate(sql, SqlParameterSourceUtils.createBatch(batchValues));