/** * Return a PreparedStatementCreator to perform an operation * with the given parameters. * @param params the parameter array (may be {@code null}) */ protected final PreparedStatementCreator newPreparedStatementCreator(@Nullable Object[] params) { Assert.state(this.preparedStatementFactory != null, "No PreparedStatementFactory available"); return this.preparedStatementFactory.newPreparedStatementCreator(params); }
/** * Overridden method to configure the PreparedStatementCreatorFactory * based on our declared parameters. */ @Override protected final void compileInternal() { this.preparedStatementFactory = new PreparedStatementCreatorFactory(resolveSql(), getDeclaredParameters()); this.preparedStatementFactory.setResultSetType(getResultSetType()); this.preparedStatementFactory.setUpdatableResults(isUpdatableResults()); this.preparedStatementFactory.setReturnGeneratedKeys(isReturnGeneratedKeys()); if (getGeneratedKeysColumnNames() != null) { this.preparedStatementFactory.setGeneratedKeysColumnNames(getGeneratedKeysColumnNames()); } onCompileInternal(); }
/** * Return a PreparedStatementSetter to perform an operation * with the given parameters. * @param params the parameter array (may be {@code null}) */ protected final PreparedStatementSetter newPreparedStatementSetter(@Nullable Object[] params) { Assert.state(this.preparedStatementFactory != null, "No PreparedStatementFactory available"); return this.preparedStatementFactory.newPreparedStatementSetter(params); }
@Override public int update( String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, @Nullable String[] keyColumnNames) throws DataAccessException { PreparedStatementCreator psc = getPreparedStatementCreator(sql, paramSource, pscf -> { if (keyColumnNames != null) { pscf.setGeneratedKeysColumnNames(keyColumnNames); } else { pscf.setReturnGeneratedKeys(true); } }); return getJdbcOperations().update(psc, generatedKeyHolder); }
private PreparedStatementCreatorFactory createFactory() { List<SqlParameter> parameters = new ArrayList<>(); parameters.add(new SqlParameter("content", Types.LONGVARCHAR)); parameters.add(new SqlParameter("create_time", Types.TIMESTAMP)); PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(sqlStatementProvider.getInsertSql(), parameters); factory.setReturnGeneratedKeys(true); return factory; }
public int updateProfileById(Integer profileId, String profileXML) { if (profileId == null) { throw new IllegalArgumentException("profileId must not be 'null'"); } // if (profileXML == null) { // throw new IllegalArgumentException("domain must not be an empty String!"); // } // // StringBuilder sqlString = new StringBuilder("UPDATE "); // sqlString.append(DEFAULT_TABLE_NAME); // sqlString.append(" SET "); // sqlString.append(DEFAULT_PROFILE_DATA_COLUMN_NAME); // sqlString.append(" =? WHERE "); // sqlString.append(DEFAULT_PROFILE_ID_COLUMN_NAME); // sqlString.append(" =?"); Object[] args = {profileXML, profileId}; int[] argTypes = {Types.BLOB, Types.INTEGER}; PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(UPDATE_PROFILE_BY_ID_QUERY, argTypes); int rowsAffected = getJdbcTemplate().update(factory.newPreparedStatementCreator(args)); return rowsAffected; }
public int update(String sql, KeyHolder keyHolder, Object... args) throws DataAccessException { // List<SqlParameter> params = new ArrayList<SqlParameter>(args.length); int[] paramType = new int[args.length]; // Types int p = 0; for (Object obj : args) { if (obj == null) obj = ""; int type = StatementCreatorUtils.javaTypeToSqlParameterType(obj.getClass()); paramType[p++] = type; // SqlParameterValue value = new SqlParameterValue(type, obj); // params.add(value); } PreparedStatementCreatorFactory pscf = new PreparedStatementCreatorFactory(sql, paramType); pscf.setReturnGeneratedKeys(true); PreparedStatementCreator psc = pscf.newPreparedStatementCreator(getArguments(args)); int ret = getJdbcOperations().update(psc, keyHolder); return ret; }
public int update( String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames) throws DataAccessException { ParsedSql parsedSql = getParsedSql(sql); String sqlToUse = NamedParameterUtils.substituteNamedParameters(parsedSql, paramSource); Object[] params = NamedParameterUtils.buildValueArray(parsedSql, paramSource, null); List<SqlParameter> declaredParameters = NamedParameterUtils.buildSqlParameterList(parsedSql, paramSource); PreparedStatementCreatorFactory pscf = new PreparedStatementCreatorFactory(sqlToUse, declaredParameters); if (keyColumnNames != null) { pscf.setGeneratedKeysColumnNames(keyColumnNames); } else { pscf.setReturnGeneratedKeys(true); } return getJdbcOperations().update(pscf.newPreparedStatementCreator(params), generatedKeyHolder); }
Object[] params = NamedParameterUtils.buildValueArray(parsedSql1, paramSource, null); List<SqlParameter> declaredParameters = NamedParameterUtils.buildSqlParameterList(parsedSql1, paramSource); PreparedStatementCreatorFactory pscf = new PreparedStatementCreatorFactory(sqlToUse1, declaredParameters); pscf.setResultSetType( ResultSet.TYPE_FORWARD_ONLY ); pscf.setUpdatableResults(false); PreparedStatementCreator preparedStatementCreator = pscf.newPreparedStatementCreator(params);
KeyHolder keyHolder = new GeneratedKeyHolder(); List<SqlParameter> declaredParams = new ArrayList<>(); declaredParams.add(new SqlParameter(Types.VARCHAR)); declaredParams.add(new SqlParameter(Types.BLOB)); declaredParams.add(new SqlParameter(Types.VARCHAR)); declaredParams.add(new SqlParameter(Types.INTEGER)); declaredParams.add(new SqlParameter(Types.INTEGER)); PreparedStatementCreatorFactory pscFactory = new PreparedStatementCreatorFactory(SQL_CREATE_IMAGE, declaredParams); pscFactory.setReturnGeneratedKeys(true); getJdbcTemplate().update( pscFactory.newPreparedStatementCreator( new Object[] { image.getName(), image.getBytes(), image.getMimeType(), image.getHeight(), image.getWidth() }), keyHolder); image.setId(keyHolder.getKey().intValue());
final List<SqlParameter> parameterList = Arrays.asList(parameters); final PreparedStatementCreatorFactory preparedStatementCreatorFactory = new PreparedStatementCreatorFactory(query, parameterList); preparedStatementCreatorFactory.setResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE); preparedStatementCreatorFactory.setNativeJdbcExtractor(new NativeJdbcExtractorAdapter() { @Override public PreparedStatement getNativePreparedStatement(final PreparedStatement ps) throws SQLException { final PreparedStatementCreator psc = preparedStatementCreatorFactory.newPreparedStatementCreator(parameterList); final ResultSetExtractor<List<T>> rse = new ResultSetExtractor<List<T>>() { public List<T> extractData(final ResultSet rs) throws SQLException {
/** * Build a {@link PreparedStatementCreatorFactory} based on the given SQL and named parameters. * @param parsedSql parsed representation of the given SQL statement * @param paramSource container of arguments to bind * @return the corresponding {@link PreparedStatementCreatorFactory} * @since 5.1.3 * @see #getPreparedStatementCreator(String, SqlParameterSource, Consumer) * @see #getParsedSql(String) */ protected PreparedStatementCreatorFactory getPreparedStatementCreatorFactory( ParsedSql parsedSql, SqlParameterSource paramSource) { String sqlToUse = NamedParameterUtils.substituteNamedParameters(parsedSql, paramSource); List<SqlParameter> declaredParameters = NamedParameterUtils.buildSqlParameterList(parsedSql, paramSource); return new PreparedStatementCreatorFactory(sqlToUse, declaredParameters); }
public int storeTenantConfig(Integer tenantId, String tenantConfig) { if (tenantId == null) { throw new IllegalArgumentException("tenantId must not be 'null'!"); } if (logger.isDebugEnabled()) { logger.debug("storing tenantConfig for tenant '" + tenantId + "'"); } StringBuilder query = new StringBuilder("UPDATE "); query.append(DEFAULT_TABLE_NAME); query.append(" SET "); query.append(DEFAULT_CONFIG_COLUMN_NAME).append("=?"); query.append(" WHERE "); query.append(DEFAULT_ID_COLUMN_NAME).append("=?"); Object[] args = {tenantConfig, tenantId}; int[] argTypes = {Types.VARCHAR, Types.INTEGER}; PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(query.toString(), argTypes); return getJdbcTemplate().update(factory.newPreparedStatementCreator(args)); }
int[] argTypes = {Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.DOUBLE, Types.INTEGER, Types.VARCHAR}; PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(query.toString(), argTypes); factory.setReturnGeneratedKeys(true); KeyHolder keyHolder = new GeneratedKeyHolder(); int rowsAffected = getJdbcTemplate().update(factory.newPreparedStatementCreator(args), keyHolder);
.append("=?, ").append(DEFAULT_ACTION_TIME_COLUMN_NAME).append("=? ").toString(); PS_INSERT_ACTION = new PreparedStatementCreatorFactory(SQL_INSERT_ACTION, ARG_TYPES_INSERT); PS_INSERT_ACTION.setReturnGeneratedKeys(true);
pscf.setGeneratedKeysColumnNames(keyColumnNames); pscf.setReturnGeneratedKeys(true);
public int storeTenantStatistic(Integer tenantId, String tenantStatistic) { if (tenantId == null) { throw new IllegalArgumentException("tenantId must not be 'null'!"); } if (logger.isDebugEnabled()) { logger.debug("storing tenantStatistic for tenant '" + tenantId + "'"); } StringBuilder query = new StringBuilder("UPDATE "); query.append(DEFAULT_TABLE_NAME); query.append(" SET "); query.append(DEFAULT_STATISTIC_COLUMN_NAME).append("=?"); query.append(" WHERE "); query.append(DEFAULT_ID_COLUMN_NAME).append("=?"); PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(query.toString(), new int[]{Types.VARCHAR, Types.INTEGER}); return getJdbcTemplate().update(factory.newPreparedStatementCreator(new Object[]{tenantStatistic, tenantId})); }
Types.VARCHAR, Types.VARCHAR}; PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(query.toString(), argTypes); factory.setReturnGeneratedKeys(true); KeyHolder keyHolder = new GeneratedKeyHolder(); int rowsAffected = getJdbcTemplate().update(factory.newPreparedStatementCreator(args), keyHolder);
/** * Overridden method to configure the PreparedStatementCreatorFactory * based on our declared parameters. */ @Override protected final void compileInternal() { this.preparedStatementFactory = new PreparedStatementCreatorFactory(resolveSql(), getDeclaredParameters()); this.preparedStatementFactory.setResultSetType(getResultSetType()); this.preparedStatementFactory.setUpdatableResults(isUpdatableResults()); this.preparedStatementFactory.setReturnGeneratedKeys(isReturnGeneratedKeys()); if (getGeneratedKeysColumnNames() != null) { this.preparedStatementFactory.setGeneratedKeysColumnNames(getGeneratedKeysColumnNames()); } onCompileInternal(); }
/** * Return a PreparedStatementCreator to perform an operation * with the given parameters. * @param sqlToUse the actual SQL statement to use (if different from * the factory's, for example because of named parameter expanding) * @param params the parameter array (may be {@code null}) */ protected final PreparedStatementCreator newPreparedStatementCreator(String sqlToUse, @Nullable Object[] params) { Assert.state(this.preparedStatementFactory != null, "No PreparedStatementFactory available"); return this.preparedStatementFactory.newPreparedStatementCreator(sqlToUse, params); }