Giriş
Bir satırın nasıl parçalanacağını belirtir. Tokenizer ve Mapper vermek gerekir.
- Tokenizer olarak DelimitedLineTokenizer kullanılır.
- Mapper olarak org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper veya
FieldSetMapper'dan kalıtan bir sınıf kullanılır. Açıklaması şöyle
The `BeanWrapperFieldSetMapper` is used to map the data to a Java object.
setLineTokenizer metodu - DelimitedLineTokenizer
Örnek
Şöyle yaparız
//READING FROM CSV FILE MAPPER
public DefaultLineMapper<Customer> soatoRowMapper(){
var defaultLineMapper = new DefaultLineMapper<Customer>();
//set tokenizer
var delimitedLineTokenizer = new DelimitedLineTokenizer();
delimitedLineTokenizer.setNames("id", "par_id", "soato_id","level");
defaultLineMapper.setLineTokenizer(delimitedLineTokenizer);
//set field mapper
var beanWrapperFieldSetMapper = new BeanWrapperFieldSetMapper<Customer>();
beanWrapperFieldSetMapper.setTargetType(Customer.class);
defaultLineMapper.setFieldSetMapper(beanWrapperFieldSetMapper);
return defaultLineMapper;
}
- DelimitedLineTokenizer ayraç olarak "," karakterini kullanır. setNames() çağrısı ile her token'ın hangi isimle saklanacağı belirtilir.
- BeanWrapperFieldSetMapper ise belirtilen tipten nesneyi yaratır ve setNames() ile belirtilen alanları doldurur
setFieldSetMapper metodu
Örnek
Şöyle yaparız. Bu örnek yukarıdaki ile aynı
DefaultLineMapper<String> lineMapper = new DefaultLineMapper<>();
DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
lineTokenizer.setNames("name");
lineMapper.setLineTokenizer(lineTokenizer);
BeanWrapperFieldSetMapper<String> fieldSetMapper = new BeanWrapperFieldSetMapper<>;
fieldSetMapper.setTargetType(String.class);
lineMapper.setFieldSetMapper(fieldSetMapper);
Hiç yorum yok:
Yorum Gönder