List of usage examples for org.springframework.jdbc.core.namedparam NamedParameterUtils substituteNamedParameters
public static String substituteNamedParameters(String sql, SqlParameterSource paramSource)
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//ww w. jav a 2s. 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 ww w . j a v a2s.co 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 . jav a2 s .c o m ExecutionContext executionContext = new ExecutionContext(); dataReader.open(executionContext); return new SpringItemReaderAdapter<SecondData>(dataReader); }