spring batch을 활용한 csv 파일 저장은 이전 글에서 볼 수 있다.
fruit / apple, banana / good 으로 구분되어 DB 각 필드에 저장DEFAULT_QUOTE_CHARACTER 선언하여 무시할 문자 지정isQuoteCharacter 메서드 오버라이딩class customDelimitedLineTokenizer extends DelimitedLineTokenizer {
private static final char DEFAULT_QUOTE_CHARACTER = '"';
@Override
protected boolean isQuoteCharacter(char c) {
return c == DEFAULT_QUOTE_CHARACTER;
}
}
@Bean
public FlatFileItemReader<FacilityDto> csvFacilityReader(){
//...생략
/* defaultLineMapper: 읽으려는 데이터 LineMapper을 통해 Dto로 매핑 */
DefaultLineMapper<FacilityDto> defaultLineMapper = new DefaultLineMapper<>();
/* delimitedLineTokenizer : csv 파일에서 구분자 지정하고 구분한 데이터 setNames를 통해 각 이름 설정 */
DelimitedLineTokenizer delimitedLineTokenizer = new customDelimitedLineTokenizer(); //csv 파일에서 구분자
delimitedLineTokenizer.setDelimiter(",");
delimitedLineTokenizer.setNames(...); //행으로 읽은 데이터 매칭할 데이터 각 이름
defaultLineMapper.setLineTokenizer(delimitedLineTokenizer); //lineTokenizer 설정
//...생략
}