Spring boot 在Spring Boot中使用Spring批处理读取长类型的特定列数据

Spring boot 在Spring Boot中使用Spring批处理读取长类型的特定列数据,spring-boot,spring-batch,Spring Boot,Spring Batch,各位 需要使用Spring batch读取特定列数据。我正在创建一个spring批处理应用程序,它需要读取特定的列 在我的csv文件中有一列“msisdn”,该字段映射到POJO。我想读取长数据类型的“msisdn”no的值 好吧,我正在参考下面的链接 客户POJO 我正在使用CustomMapper类来实现此功能。如您所见,CustomMapper类实现了FieldSetMapper类型。fieldSet方法返回字符串[]数组,msisdn为长类型。无法理解如何获取msisdn列中的所有值,

各位

需要使用Spring batch读取特定列数据。我正在创建一个spring批处理应用程序,它需要读取特定的列

在我的csv文件中有一列“msisdn”,该字段映射到POJO。我想读取长数据类型的“msisdn”no的值

好吧,我正在参考下面的链接

客户POJO 我正在使用CustomMapper类来实现此功能。如您所见,CustomMapper类实现了FieldSetMapper类型。fieldSet方法返回字符串[]数组,msisdn为长类型。无法理解如何获取msisdn列中的所有值,因为fieldSet只提供字符串[]类型的数据

CustomMapper
============
public class CustomMapper implements FieldSetMapper<Customer> {

    @Override
    public Customer mapFieldSet(FieldSet fieldSet) throws BindException {
        String[] custArray = null;
        Customer customer = new Customer();
        customer.setMsisdn(fieldSet.get);
        return null;
    }

}
CustomMapper
============
公共类CustomMapper实现FieldSetMapper{
@凌驾
公共客户映射字段集(字段集字段集)引发BindException{
字符串[]custary=null;
客户=新客户();
customer.setMsisdn(fieldSet.get);
返回null;
}
}


请在这方面帮助我?

您可以使用
fieldSet.readLong(int-index)
fieldSet.readLong(字符串名)
从字段集中按名称或索引选择字段。显然,在项目读取器中解析文件时应该选择此字段。

如果我们编写CustomFieldSetMapper,是否必须提到fieldSetMapper.setTargetType(Customer.class);我对此表示怀疑。你能澄清一下吗?不,如果你有一个自定义映射器,你只需要在你的
FlatFileItemReader
配置中设置它:
FlatFileItemReaderBuilder.fieldSetMapper(new CustomMapper())
我已经像这样使用了。fieldSetMapper fieldSetMapper=new fieldSetMapper(){@Override public Customer mapper fieldset(FieldSet FieldSet)抛出BindException{Customer Customer=new Customer();Customer.setMsisdn(FieldSet.readLong(“msisdn”);return Customer;}}};linemapper.setFieldSetMapper(fieldSetmapper);这是正确的方法吗?是的,看起来不错,但请务必编辑您的问题并添加代码,而不是在注释中添加。
CustomMapper
============
public class CustomMapper implements FieldSetMapper<Customer> {

    @Override
    public Customer mapFieldSet(FieldSet fieldSet) throws BindException {
        String[] custArray = null;
        Customer customer = new Customer();
        customer.setMsisdn(fieldSet.get);
        return null;
    }

}