Example usage for org.springframework.jdbc.core.namedparam NamedParameterUtils parseSqlStatement

List of usage examples for org.springframework.jdbc.core.namedparam NamedParameterUtils parseSqlStatement

Introduction

In this page you can find the example usage for org.springframework.jdbc.core.namedparam NamedParameterUtils parseSqlStatement.

Prototype

public static ParsedSql parseSqlStatement(final String sql) 

Source Link

Document

Parse the SQL statement and locate any placeholders or named parameters.

Usage

From source file:com.danidemi.jlubricant.springbatch.NamedJdbcCursorItemReader.java

/**
 * Obtain a parsed representation of the given SQL statement.
 * <p>The default implementation uses an LRU cache with an upper limit
 * of 256 entries.// w ww.  j a  v  a  2s .  c om
 * @param sql the original SQL
 * @return a representation of the parsed SQL statement
 */
protected ExposedParsedSql getParsedSql(String sql) {
    if (getCacheLimit() <= 0) {
        return new ExposedParsedSql(NamedParameterUtils.parseSqlStatement(sql));
    }
    synchronized (this.parsedSqlCache) {
        ExposedParsedSql parsedSql = this.parsedSqlCache.get(sql);
        if (parsedSql == null) {
            parsedSql = new ExposedParsedSql(NamedParameterUtils.parseSqlStatement(sql));
            this.parsedSqlCache.put(sql, parsedSql);
        }
        return parsedSql;
    }
}

From source file:io.kahu.hawaii.util.call.sql.AbortableQuery.java

/**
 * Build a PreparedStatementCreator based on the given SQL and named parameters.
 * <p>Note: Not used for the {@code update} variant with generated key handling.
 * @param sql SQL to execute/*from w  w  w .  j  a va2 s. c o m*/
 * @param paramSource container of arguments to bind
 * @return the corresponding PreparedStatementCreator
 */
protected PreparedStatementCreator getPreparedStatementCreator(String sql, SqlParameterSource paramSource) {
    ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(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);

    pscf.setGeneratedKeysColumnNames(idColumn);

    return pscf.newPreparedStatementCreator(params);
}

From source file:info.raack.appliancelabeler.data.JDBCDatabase.java

@Override
public ItemReader<SecondData> getEnergyMeasurementReaderForMonitor(EnergyMonitor energyMonitor, Date start,
        Date end, int ticks) {
    EnergyMeasurementQueryItems items = getEnergyMeasurementQueryItems(energyMonitor, start, end, ticks);

    JdbcCursorItemReader<SecondData> dataReader = new JdbcCursorItemReader<SecondData>();
    dataReader.setDataSource(dataSource);
    dataReader.setRowMapper(secondDataRowMapper);

    // crucial if using mysql to ensure that results are streamed
    dataReader.setFetchSize(Integer.MIN_VALUE);
    dataReader.setVerifyCursorPosition(false);

    ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(items.sql);
    String sql = NamedParameterUtils.substituteNamedParameters(parsedSql, items.parameters);
    ListPreparedStatementSetter listPreparedStatementSetter = new ListPreparedStatementSetter();
    listPreparedStatementSetter.setParameters(
            Arrays.asList(NamedParameterUtils.buildValueArray(parsedSql, items.parameters, null)));
    dataReader.setPreparedStatementSetter(listPreparedStatementSetter);
    dataReader.setSql(sql);// ww  w .j a  v a2s.  c  o m

    ExecutionContext executionContext = new ExecutionContext();
    dataReader.open(executionContext);

    return new SpringItemReaderAdapter<SecondData>(dataReader);
}