Springbatchの使用手順
1972 ワード
第1ステップJOBBUILDERFACTORY第2部STEPUILDERFACTORY第3部New jobbuillderfactoryを作成する.get("タスク名").incrementer(new RunIdIncrementer()).start(itemReaderDemoStep()).build(); 第四部NEW Step Builderfactory.get(「step名前」).chunk(2).reader(fileReader()).processer(myprocesser).writer(flatFieldWriter).build();
MyReaderの作成1は、itemsreader 2を実装し、readerの戻り値タイプを設定し、readerの読み取りタイプを決定する3は、readerのパラメータ4を設定し、readerをマッピング構成し、読み取り内容をJAVAクラスにマッピングする
MyWriterの作成1は、itemswriter 2を実現し、読み込んだ内容に対してwriterのデータベース書き込みに関する書き方を処理する
readerのデータベースの読み方について
MyReaderの作成1は、itemsreader 2を実装し、readerの戻り値タイプを設定し、readerの読み取りタイプを決定する3は、readerのパラメータ4を設定し、readerをマッピング構成し、読み取り内容をJAVAクラスにマッピングする
MyWriterの作成1は、itemswriter 2を実現し、読み込んだ内容に対してwriterのデータベース書き込みに関する書き方を処理する
@Autowired
private DataSource datasource;
@Bean
public JdbcBatchItemWriter itemWriterDb() {
JdbcBatchItemWriter writer = new JdbcBatchItemWriter();
writer.setDataSource(datasource);
writer.setSql(
"insert into customer(id,firstName,lastName,birthday) values" + "(:id,:firstName,:lastName,:birthday)");
writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider());
return writer;
}
readerのデータベースの読み方について
@Bean
@StepScope
public JdbcPagingItemReader dbJdbcReader() {
JdbcPagingItemReader reader=new JdbcPagingItemReader();
reader.setDataSource(datasource);
reader.setFetchSize(2);
reader.setRowMapper(new RowMapper() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user=new User();
user.setId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(5));
return user;
}
});
MySqlPagingQueryProvider provider=new MySqlPagingQueryProvider();
provider.setSelectClause("id,username,password");
provider.setFromClause("from user");
Map sort=new HashMap<>();
sort.put("id",Order.ASCENDING);
provider.setSortKeys(sort);
reader.setQueryProvider(provider);
return reader;