如何使用Spring Batch存储整个读取行?

托尼·爱德华兹

我正在使用Spring Boot 1.4和Spring Batch 1.4来读取文件,并且当然将数据解析到数据库中。

我想做的是在映射字段之前将整个读取的行存储在数据库中。整个行将作为字符串存储在数据库中。这是出于审计目的,因此我不想从其组件重建行字符串。

我们都已经看到了使用通用映射器从定界线获取数据的方法:

@Bean
@StepScope
public FlatFileItemReader<Claim> claimFileReader(@Value("#{jobParameters[fileName]}") String pathToFile) {
    logger.debug("Setting up FlatFileItemReader for claim");
    logger.debug("Job Parameter for input filename: " + pathToFile);

    FlatFileItemReader<Claim> reader = new FlatFileItemReader<Claim>();
    reader.setResource(new FileSystemResource(pathToFile));
    reader.setLineMapper(claimLineMapper());
    logger.debug("Finished setting up FlatFileItemReader for claim");
    return reader;
}

@Bean
public LineMapper<Claim> claimLineMapper() {
    logger.debug("Setting up lineMapper");

    DefaultLineMapper<Claim> lineMapper = new DefaultLineMapper<Claim>();

    DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer();
    lineTokenizer.setDelimiter("|");
    lineTokenizer.setStrict(false);
    lineTokenizer.setNames(new String[] { "RX_NUMBER", "SERVICE_DT", "CLAIM_STS", "PROCESSOR_CLAIM_ID", "CARRIER_ID", "GROUP_ID", "MEM_UNIQUE_ID" });

    BeanWrapperFieldSetMapper<Claim> fieldSetMapper = new BeanWrapperFieldSetMapper<Claim>();
    fieldSetMapper.setTargetType(Claim.class);

    lineMapper.setLineTokenizer(lineTokenizer);
    lineMapper.setFieldSetMapper(claimFieldSetMapper());

    logger.debug("Finished Setting up lineMapper");

    return lineMapper;
}

如果这是我的行:463832 | 20160101 | PAID | 504419000000 | XYZ | GOLD PLAN | 561868

我想将“ 463832 | 20160101 | PAID | 504419000000 | HBT | GOLD PLAN | 561868”作为字符串存储在数据库中(可能带有一些额外的数据,例如job_instance_id)。

关于如何在文件读取过程中将其挂接到钩子的任何想法?

Nghia Do

除了使用DefaultLineMapper,您还可以创建一个新类(建议CustomLineMapper),如下所示

public class CustomLineMapper extends DefaultLineMapper<Claim> {

    @Override
    public Claim mapLine(String line, int lineNumber) throws Exception {
        // here you can handle *line content*
        return super.mapLine(line, lineNumber);
    }
}

对象将包含将其映射到对象之前的原始数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Spring-Batch读取id列分块的csv行?

来自分类Dev

如何使用Spring Batch无条件写入每个读取行的多个表

来自分类Dev

如何使用Spring Batch读取简单的XML列表?

来自分类Dev

如何使用Spring Batch通过excel文件读取和解析?

来自分类Dev

如何使用Spring Batch读取简单的XML列表?

来自分类Dev

Spring Batch通过xml列表(而非整个文件)读取失败并重试

来自分类Dev

如何使用Spring从资源中读取查询?

来自分类Dev

如何使用Spring Controller从URL读取文件?

来自分类Dev

如何使用Spring Integration逐行读取文件

来自分类Dev

如何使用Spring从资源中读取查询?

来自分类Dev

Presto:如何从s3中读取在子文件夹中分区的整个存储桶?

来自分类Dev

如何使用“ localStorage”存储整个页面?

来自分类Dev

Spring Boot Batch MultiResourceItemReader:如何使用@Value()从jar位置读取文件

来自分类Dev

Spring-Batch:如何使用StaxEventReader逐节点读取加密的XML文件

来自分类Dev

如何使用spring-batch从文件夹中连续读取文件?

来自分类Dev

Spring Batch如何在条件下跳过整个文件

来自分类Dev

如何使用Spring-Batch从单个项目/行执行多次写入?

来自分类Dev

如何只访问一行而不将整个表存储在内存中?

来自分类Dev

使用awk时是否可以将整个行存储在变量中?

来自分类Dev

使用awk时是否可以将整个行存储在变量中?

来自分类Dev

如何使用js读取网站的“本地存储”

来自分类Dev

如何在Spring Batch中同时读取2个文件

来自分类Dev

如何与Spring Batch一起使用@Configuration和@EnableScheduling

来自分类Dev

如何使用基于Java的配置来配置Spring Batch StepScope?

来自分类Dev

如何使用Spring Batch解析CSV(包含逗号的值)

来自分类Dev

如何使用批注在Spring Batch中运行多个作业

来自分类Dev

如何使用Spring Batch查看集群中的所有作业?

来自分类Dev

如何使用ThreadPoolTaskScheduler动态调度Spring Batch作业

来自分类Dev

如何在Spring Batch中使用db实现多个Reader

Related 相关文章

  1. 1

    如何使用Spring-Batch读取id列分块的csv行?

  2. 2

    如何使用Spring Batch无条件写入每个读取行的多个表

  3. 3

    如何使用Spring Batch读取简单的XML列表?

  4. 4

    如何使用Spring Batch通过excel文件读取和解析?

  5. 5

    如何使用Spring Batch读取简单的XML列表?

  6. 6

    Spring Batch通过xml列表(而非整个文件)读取失败并重试

  7. 7

    如何使用Spring从资源中读取查询?

  8. 8

    如何使用Spring Controller从URL读取文件?

  9. 9

    如何使用Spring Integration逐行读取文件

  10. 10

    如何使用Spring从资源中读取查询?

  11. 11

    Presto:如何从s3中读取在子文件夹中分区的整个存储桶?

  12. 12

    如何使用“ localStorage”存储整个页面?

  13. 13

    Spring Boot Batch MultiResourceItemReader:如何使用@Value()从jar位置读取文件

  14. 14

    Spring-Batch:如何使用StaxEventReader逐节点读取加密的XML文件

  15. 15

    如何使用spring-batch从文件夹中连续读取文件?

  16. 16

    Spring Batch如何在条件下跳过整个文件

  17. 17

    如何使用Spring-Batch从单个项目/行执行多次写入?

  18. 18

    如何只访问一行而不将整个表存储在内存中?

  19. 19

    使用awk时是否可以将整个行存储在变量中?

  20. 20

    使用awk时是否可以将整个行存储在变量中?

  21. 21

    如何使用js读取网站的“本地存储”

  22. 22

    如何在Spring Batch中同时读取2个文件

  23. 23

    如何与Spring Batch一起使用@Configuration和@EnableScheduling

  24. 24

    如何使用基于Java的配置来配置Spring Batch StepScope?

  25. 25

    如何使用Spring Batch解析CSV(包含逗号的值)

  26. 26

    如何使用批注在Spring Batch中运行多个作业

  27. 27

    如何使用Spring Batch查看集群中的所有作业?

  28. 28

    如何使用ThreadPoolTaskScheduler动态调度Spring Batch作业

  29. 29

    如何在Spring Batch中使用db实现多个Reader

热门标签

归档