Springbatchの使用手順


第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のデータベース書き込みに関する書き方を処理する
@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;