List of usage examples for org.springframework.jdbc.core.namedparam NamedParameterUtils parseSqlStatement
public static ParsedSql parseSqlStatement(final String sql)
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); }