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

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

Introduction

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

Prototype

public static Object[] buildValueArray(ParsedSql parsedSql, SqlParameterSource paramSource,
        @Nullable List<SqlParameter> declaredParams) 

Source Link

Document

Convert a Map of named parameter values to a corresponding array.

Usage

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 ww.java2s  .c om*/
 * @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:com.danidemi.jlubricant.springbatch.NamedJdbcCursorItemReader.java

@Override
protected void openCursor(Connection con) {

    //MyParsedSqlDel parsedSql = getParsedSql(sql);

    //String sqlToUse = NamedParameterUtils.substituteNamedParameters(parsedSql.getDelegate(), paramSource);

    //String theSql = sqlToUse;

    try {/*from   w ww .j  a va  2 s .  c o m*/
        //         if (isUseSharedExtendedConnection()) {
        //            preparedStatement = con.prepareStatement(theSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY,
        //                  ResultSet.HOLD_CURSORS_OVER_COMMIT);
        //         }
        //         else {
        //            preparedStatement = con.prepareStatement(theSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        //         }
        //         applyStatementSettings(preparedStatement);
        //         if (this.preparedStatementSetter != null) {
        //            
        //            
        //            preparedStatementSetter.setValues(preparedStatement);
        //            
        //            
        //            
        //            
        //            
        //         }
        //         this.rs = preparedStatement.executeQuery();

        ParsedSql parsedSql1 = this.getParsedSql(sql).getDelegate();
        String sqlToUse1 = NamedParameterUtils.substituteNamedParameters(parsedSql1, paramSource);
        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);

        //con.prepareStatement(theSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

        preparedStatement = preparedStatementCreator.createPreparedStatement(con);
        this.rs = preparedStatement.executeQuery();

        handleWarnings(preparedStatement);
    } catch (SQLException se) {
        close();
        throw getExceptionTranslator().translate("Executing query", getSql(), se);
    }

}

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);//from w  w w. j  av a2s  .  c  o m

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

    return new SpringItemReaderAdapter<SecondData>(dataReader);
}