我正在使用一个块来读取文件并将内容插入数据库,表中的一列需要输入文件中的记录号。有没有办法在传递给 ItemProcessor 的对象中获取它或从 ItemProcessor 中获取它?
问问题
52 次
3 回答
0
我最终使用 ItemReadListener 在 afterRead 方法中获取 StepContext 指标,并使用当前读取计数更新我的 Object 读取。
于 2020-05-18T12:52:12.730 回答
0
JBeretBeanIOItemReader
将所有操作委托给底层org.beanio.BeanReader
. 因此,如果您需要输入中的信息,那么您需要配置 BeanIO 映射文件以将其包含在BeanReader
.
如果您需要访问累积统计信息,您可以查看 ,您可以在javax.batch.runtime.context.StepContext#getMetrics
其中访问各种统计信息:
READ_COUNT
WRITE_COUNT
COMMIT_COUNT
ROLLBACK_COUNT
READ_SKIP_COUNT
PROCESS_SKIP_COUNT
FILTER_COUNT
WRITE_SKIP_COUNT
于 2020-04-10T18:31:28.557 回答
0
BeanReader.getRecordCount()
javadoc 将其描述为:
/**
* Returns the number of records read from the underlying input stream for the
* most recent bean object read from this reader. This typically returns 1
* unless a bean object was mapped to a record group which may span
* multiple records.
* @return the record count
* @since 2.0
*/
public int getRecordCount();
如果它通常返回 1,那么我看不出它有什么用处。
如果您想知道阅读器已阅读的记录数,即第 5 条或第 6 条记录,则可以使用READ_COUNT
如上所述的批处理指标。
于 2020-05-16T22:11:09.403 回答