List of usage examples for org.springframework.batch.item.database ItemSqlParameterSourceProvider ItemSqlParameterSourceProvider
ItemSqlParameterSourceProvider
From source file:org.cloudfoundry.workers.stocks.batch.BatchConfiguration.java
/*** * The Spring Batch {@link org.springframework.batch.item.ItemWriter item * writer} persists the {@link StockSymbolLookup} lookup results into a * table (<CODE>STOCKS_DATA</CODE>). * //from w w w . ja v a2 s. c om * @param dateOfAnalysis */ @Bean(name = "writer") @Scope("step") public JdbcBatchItemWriter<StockSymbolLookup> writer( final @Value("#{jobParameters['date']}") Date dateOfAnalysis) { JdbcBatchItemWriter<StockSymbolLookup> jdbcBatchItemWriter = new JdbcBatchItemWriter<StockSymbolLookup>(); jdbcBatchItemWriter.setSql( "INSERT INTO STOCKS_DATA( DATE_ANALYSED, HIGH_PRICE, LOW_PRICE, CLOSING_PRICE, SYMBOL) VALUES ( :da, :hp, :lp, :cp, :s ) "); jdbcBatchItemWriter.setDataSource(dsConfig.dataSource()); jdbcBatchItemWriter .setItemSqlParameterSourceProvider(new ItemSqlParameterSourceProvider<StockSymbolLookup>() { @Override public SqlParameterSource createSqlParameterSource(StockSymbolLookup item) { return new MapSqlParameterSource() .addValue("da", new java.sql.Date(dateOfAnalysis.getTime()), Types.DATE) .addValue("hp", item.getHighPrice(), Types.DOUBLE) .addValue("lp", item.getLowPrice(), Types.DOUBLE).addValue("s", item.getTicker()) .addValue("si", item.getId(), Types.BIGINT) .addValue("cp", item.getLastValueWhileOpen(), Types.DOUBLE); } }); return jdbcBatchItemWriter; }