Skip to content

Commit d834a5f

Browse files
Create batch.java
1 parent e043779 commit d834a5f

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

‎batch.java‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package hello.sample;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
import org.springframework.batch.item.database.JdbcBatchItemWriter;
7+
import org.springframework.batch.item.database.JdbcPagingItemReader;
8+
import org.springframework.batch.item.database.Order;
9+
import org.springframework.batch.item.database.support.ColumnMapItemPreparedStatementSetter;
10+
import org.springframework.batch.item.database.support.MySqlPagingQueryProvider;
11+
import org.springframework.context.annotation.Bean;
12+
13+
public class Sample {
14+
//https://stackoverflow.com/questions/24233821/skippable-exception-classes-for-spring-batch-with-java-based-configuration
15+
//https://stackoverflow.com/questions/40996321/retry-not-working-with-faulttolerantstepbuilder
16+
@Bean
17+
public JdbcPagingItemReader<Customer> pagingItemReader() {
18+
/*JdbcCursorItemReader<Map<String, Object>> reader = new JdbcCursorItemReader<>();
19+
reader.setDataSource(dataSource);
20+
reader.setRowMapper(new ColumnMapRowMapper());
21+
reader.setSql(getSqlQueryForTable(tableName));
22+
reader.open(executionContext);
23+
return reader;*/
24+
JdbcPagingItemReader<Customer> reader = new JdbcPagingItemReader<>();
25+
26+
reader.setDataSource(null);
27+
reader.setFetchSize(10);
28+
reader.setRowMapper(new CustomerRowMapper());
29+
30+
MySqlPagingQueryProvider queryProvider = new MySqlPagingQueryProvider();
31+
queryProvider.setSelectClause("id, firstName, lastName, birthdate");
32+
queryProvider.setFromClause("from customer");
33+
34+
Map<String, Order> sortKeys = new HashMap<>(1);
35+
36+
sortKeys.put("id", Order.ASCENDING);
37+
38+
queryProvider.setSortKeys(sortKeys);
39+
40+
reader.setQueryProvider(queryProvider);
41+
42+
return reader;
43+
}
44+
45+
@Bean
46+
public JdbcBatchItemWriter<Map<String, Object>> customerItemWriter() {
47+
JdbcBatchItemWriter<Map<String, Object>> itemWriter = new JdbcBatchItemWriter<>();
48+
49+
itemWriter.setDataSource(null);
50+
itemWriter.setSql("INSERT INTO CUSTOMER VALUES (:id, :firstName, :lastName, :birthdate)");
51+
itemWriter.setItemPreparedStatementSetter(new ColumnMapItemPreparedStatementSetter());
52+
itemWriter.afterPropertiesSet();
53+
54+
return itemWriter;
55+
}
56+
}

0 commit comments

Comments
 (0)