Spring-Batch CSV文件读取时的注意点

按照Spring Batch 之 Sample(CSV文件操作)(四)

的方式配置好csvItemReader,

发现读入的数据很是奇怪,通过修改配置文件发现,

 commit-interval="1" 的时候,例程是没有问题的.如果大于1,例如设为50,则会把第50条数据,读50遍进来.

跟踪代码org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper的getBean()方法后发现,当配置文件如下时
                <bean:property name="fieldSetMapper">                    <bean:bean                        class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">                        <bean:property name="prototypeBeanName" value="student"></bean:property>                    </bean:bean>                </bean:property>

prototypeBeanName会导致Chunk读取的数据会设置到唯一的指定Bean内,所以只有Chunk读取的最后一行数据能够保留在Bean中。

修改方式,采用targetType代替prototypeBeanName。                        <!-- property name="prototypeBeanName" value="mongoDataHistory"></property-->                        <property name="targetType" value="实体Bean的类名"></property>
				
时间: 2024-08-03 15:34:46

Spring-Batch CSV文件读取时的注意点的相关文章

Spring Batch使用示例: 读取CSV文件并写入MySQL数据库

GitHub版本: https://github.com/kimmking/SpringBatchReferenceCN/blob/master/01_introduction/Spring_Batch_MySQL.md ------------ 编写批处理程序来处理GB级别数据量无疑是种海啸般难以面对的任务,但我们可以用Spring Batch将其拆解为小块小块的(chunk). Spring Batch 是Spring框架的一个模块,专门设计来对各种类型的文件进行批量处理. 本文先讲解一个简

CSV文件读取,解决汉字乱码

public String getDeptOuId(String openId) throws IOException { String deptId = ""; // 存储信息的文件的绝对路径  String csvPath = FileUtil.getWorkingPath()  .resolve(ConfigUtil.getConfig().get("idmappings")).toString(); System.out.print(csvPath); //

cocos2d-x学习笔记——Csv文件读取工具

在一个游戏中,通常会有很多怪物,以及怪物的生命值,魔法值等属性数据,这些数据不可能在代码里面写死,一般都会用配置文件来保存,使用时再加载到内存. 我们常用的配置文件是CSV文件,即逗号分隔值(Comma-Separated Values),如下图所示. 今天,我就来介绍一个来读取CSV文件的工具类--MyCsvUtil. 在接受读取CSV文件工具类之前,先介绍一个读取字符串的工具类--StringUtil. //头文件StringUtil.h #ifndef __StringUtil_H_ #d

CSV文件读取类

最近项目中,经常需要读取Csv文件.基本步骤是: (1)按行读取 (2)然后将一行数据按逗号,分割为字符串数组 (3)将各列字符串转换成相应类型的数据 ,如int double类型 写了一个简单的Csv文件读取类,方便使用,可以按列名或列索引读取数据.将字符串转换成数字变量使用的是stringstream类. 如下: #ifndef CSV_READER_H_ #define CSV_READER_H_ #include <vector> #include <map> #inclu

Jmeter使用csv文件读取测试数据

Jmeter使用csv文件读取测试数据 最近有同事在测试过程中遇到需要造批量测试数据的问题,这些数据往往是同一种单据,但是单据的内容不同,如果手工创建就比较费时费力.那我们用jmeter的csv文件来读取测试数据就完美解决了这个问题. 我们今天使用博客园的开放API来举例,接口信息如下 获取新闻内容 Url: http://wcf.open.cnblogs.com/news/item/{CONTENTID} HTTP Method: GET 首先,我们创建一个CSV文件,然后将我们的批量测试数据

csv文件读取与写入

csv文件的读取: 1)通过列表下标读取: import csv with open('stock.csv','r') as fp: # reader是个迭代器 reader = csv.reader(fp) next(reader) for i in reader: # print(i) name = i[3] volumn = i[-1] print({'name':name,'volumn':volumn}) 直接用 open() 函数打开 csv 文件.使用csv.reader() 方法

CSV文件读取(问题)

1.支持.txt,.log,.json三种格式 并且也支持.csv格式文件类型----.csv在使用时会出现乱码情况 2.当时遇到问题: CSV文件.txt文本内有数据,如:user ,pwd admin,123 admin01,234 此时设置的线程为10个,但是数据仅2个,那么这时就需要设置: 设置文件结束符停止,或者再次循环-----------这个可以在设定停止线程运行,否则就算数据少但是线程还在一直循环读取数据运行,增大无效压力 原文地址:https://www.cnblogs.com

python序列化和csv文件读取

一.python 序列化: 序列化指的是将对象转化为"串行化"数据形式,存储到硬盘或通过网路传输到其他地方,反序列化是指相反的过程,将读取到串行化数据转化成对象.使用pickle模块中的函数,实现序列化和反序列化操作. 序列化使用: pickle.dump(obj,file)     obj是被序列化的对象,file指的是存储的文件. pickle.load(file)  从file读取数据,反序列化成对象. 二.与execl  文件不同,csv文件中: 1.值没有类型,所有值都是字符

CSV文件读取

  public class Goods { private String name; private int type; private Double price; public Goods(){ } public Goods(String name, int type, Double price) { super(); this.name = name; this.type = type; this.price = price; } public String getName() { ret