当前位置: 首页 > 知识库问答 >
问题:

spring批量将对象数据写入多个文件

皇甫繁
2023-03-14

在spring batch中,我有一个需求,其中我有来自数据库的客户对象列表,我需要从这个列表中创建多个文本文件。

clas Customer{
    long customerId;
    string name;
    Address add;
    Phone phn;
}

class Address{
    string address;
    long pincode;
    string street;
}

class Phone{
    string phoneNumber;
    string desc;
}

我希望将每个客户的数据写入不同的文本文件,如

customer.txt -> customerId, name
address.txt -> address, pincode, street
phone.txt -> phoneNumber, desc

提前谢了。

共有1个答案

段干瑞
2023-03-14

我能够使用CompositeItemWriter将每个客户的数据写入不同的文本文件。下面是我如何为客户的电话提取。我希望它能帮助到某人。

<bean id="compositeCustomerWriter"
        class="org.springframework.batch.item.support.CompositeItemWriter">
        <property name="delegates">
            <list>
                <ref bean="customerWriter" />
                <ref bean="customerPhoneWriter" />
                <ref bean="customerAddressWriter" />
            </list>
        </property>
</bean>

<bean id="customerPhoneWriter" class="org.springframework.batch.item.file.FlatFileItemWriter">
        <property name="resource" value="file:customer_phone_extract.txt" />
        <property name="lineAggregator" ref="customerPhonelineAggregator" />
</bean>

<bean id="customerPhonelineAggregator"
    class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
        <property name="delimiter" value="|" />
        <property name="fieldExtractor">
            <bean
                class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                <property name="names"
                    value="phn.phoneNumber,phn.desc" />
            </bean>
        </property>
</bean>
 类似资料:
  • 我是Spring批处理的新手,目前正在处理一个新的批处理作业。我的批处理作业: 读取器:读取数据库中的记录(即5家公司的员工) 处理器:处理记录 5个writer:过滤并写入每个文件(即A公司的员工在A路径写入A公司文件,B公司的员工在B路径写入B公司文件),最后一个writer将A公司的所有离职员工写入D公司。 任务:将文件保存到数据库中。 目前,我正在使用CompositeItemWriter

  • 我目前正在编写spring batch,在这里我读取一个XML数据,对其进行处理,然后将处理结果作为< code>map传递 生成用于编组和解组的JAXB xjc类。JAXB生成的类如下所示。 JAXB员工类 Spring XML配置文件 处理器和写入器: 问题: XML文件对于每个固定的提交间隔都是重写的,很明显,XML文件是在每个提交级别之后创建的。但我必须附加所有

  • 问题内容: 我正在为Android设计一个手写应用程序。 每当用户按下Enter键时,我都希望将信息()写入日志文件。 之后,我想读取存储的信息。 这是我的类的一部分,带有自定义的write方法: 这是读取方法: 当我在文件中仅保存一个对象时,它会很好地工作。当我尝试节省更多时,阅读不起作用(抛出)。 它在while循环中仅读取一个对象! 在主类中,我仅使用两种简单的方法: 定义为: 请求的更新:

  • 问题内容: 我正在寻找神奇的Java类,它将允许我执行以下操作: 基本上,我想为S IN的Java。有任何想法吗? 谢谢! 问题答案: 尝试使用Apache Commons TeeOutputStream 。

  • 我有从多个文件读取并写入多个文件的Spring批处理配置。是否可以只写入从多个读取的一个文件。假设我收到巨大的XML文件,我将XML拆分为小文件并使用分区器并行读取小文件。但我需要将从不同的小xml文件读取的所有数据写入一个输出文件。Spring批处理是否可以做到这一点?我知道通过使写入器同步是可能的,但我正在寻找任何其他可能的方式作业配置 我得到错误组织。springframework。一批项目

  • 问题内容: 在boto 2中,可以使用以下方法写入S3对象: Key.set_contents_from_string() Key.set_contents_from_file() Key.set_contents_from_filename() Key.set_contents_from_stream() 是否有boto 3等效项?将数据保存到S3上存储的对象的boto3方法是什么? 问题答案: