mappers 可以实现输入的record 到领域对象的映射
api 模式
Job job = new JobBuilder()
.mapper(new MyRecordMapper())
.build();
提供的映射
自定义类型转换
一些recordMapper(DelimitedRecordMapper,FixedLengthRecordMapper,ApacheCommonCsvRecordMapper和JdbcRecordMapper)的原始文本数据转换成键入数据在Java对象。Easy Batch支持所有Java原语和包装器类型。如果要提供自定义类型转换器,则可以实现org.easybatch.core.api.TypeConverter接口,并在使用的记录映射器中注册实现。
定值记录注意事项
如果定界记录格式不正确,则DelimitedRecordMapper在以下情况下引发异常,导致该记录被拒绝:
- 字段编号不等于CSV RFC
- 字段不符合数据限定符的预期条件,这意味着DelimitedRecordMapper指定了限定符后,期望所有字段均符合条件。
DelimitedRecordMapper 局限性
DelimitedRecordMapper旨在覆盖分隔的值映射的基本要求。它不支持在限定的字段中检测定界符和换行符。如果需要这些功能,可以使用ApacheCommonCsvRecordMapper或OpenCsvRecordMapper。
固定长度记录注意事项
如果固定长度的记录格式不正确FixedLengthRecordMapper,则会引发异常,导致记录被拒绝。如果固定长度的记录长度不等于预期的记录长度,则格式不正确。
XML记录验证
创建时XmlRecordMapper,您应指定目标域对象类型。如果需要根据Xsd模式验证Xml记录,则可以在创建时指定模式,如下所示:
Job job = new JobBuilder()
.mapper(new XmlRecordMapper(MyPojoType.class, myXsdFile))
.build();
参考资料
https://github.com/j-easy/easy-batch/wiki/mappers