例如,数据库 ItemReader 配置了一条查询语句, 返回结果数为0, 则第一次调用read方法将返回null。...但如果column name 的数量和 拆分时找到的列数目, 则不会创建 FieldSet,只会抛出 IncorrectTokenCountException 异常, 里面包含了 字段的实际数量,还有预期的数量...乍一看可能会觉得跟 FlatFileItemWriter 一样简单直接粗暴: 如果文件存在则抛出异常, 如果
不存在则创建文件并开始写入。
但是, 作业的重启有可能会有BUG。...但批处理与其他应用的不同之处在于,批处理系统一般都运行于大规模数据集基础上。 如果一条SQL语句返回100万行, 则结果集可能全部存放在内存中m直到所有行全部读完。...但是,在写出时如果发生了什么错误,就可能会引起混乱,因为没有办法知道是哪个item引起的异常, 甚至是否某个单独的 item 负有责任,如下图所示:
如果 items 在输出之前有缓冲, 则遇到任何错误将不会立刻抛出