所以我有一個 CSV 檔案,其中我有書籍的幾個屬性,面對 bookName、authorName、yearOfPublishing 等。為了處理檔案,我正在實作批處理框架。問題是我只想讀取和決議 authorName 欄位,而我的應用程式無法識別它,它只將 CSV 檔案的第一列傳遞到我的 authorName 欄位中。這是我的專案閱讀器和線映射器。
@Bean
public FlatFileItemReader<Author> reader(){
FlatFileItemReader<Author> itemReader = new FlatFileItemReader<>();
itemReader.setResource(new FileSystemResource("src/main/resources/BX-Books.csv"));
itemReader.setName("csvReader");
itemReader.setLinesToSkip(1);
itemReader.setLineMapper(lineMapper());
itemReader.setStrict(false);
return itemReader;
}
private LineMapper<Author> lineMapper() {
DefaultLineMapper<Author> lineMapper = new DefaultLineMapper<>();
DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
lineTokenizer.setDelimiter(";");
lineTokenizer.setStrict(false);
lineTokenizer.setNames("Book-Author");
BeanWrapperFieldSetMapper<Author> fieldSetMapper = new BeanWrapperFieldSetMapper<>();
fieldSetMapper.setTargetType(Author.class);
lineMapper.setLineTokenizer(lineTokenizer);
lineMapper.setFieldSetMapper(fieldSetMapper);
return lineMapper;
}
uj5u.com熱心網友回復:
這將是做到這一點的方法。
如果上面的鏈接壞了,那將是setIncludedFields課堂上的方法。org.springframework.batch.item.file.transform.DelimitedLineTokenizer
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/471458.html
