我有两个数据库,Oracle和MySQL。 目标是将Oracle表中的值保存到MySQL中,要求:MySQL表中不存在数据。
但是我很难理解春季批处理。在步骤中,它包含itemReader,itemProcessor和itemWriter。如果我的理解是正确的,那么一个步骤只能有一个itemReader(cmiiw)
我的计划是执行2个步骤:
第1步。从MySQL表中列出
步骤2。使用主键ex:id将来自Oracle的T与列表(步骤1)进行比较。
如果方法正确,我的问题是:如何逐步列出清单?以及如何将其传递到步骤2?
我在这方面需要指导,谢谢
答案 0 :(得分:0)
根据您的要求,您可以使用自定义项目阅读器,例如
public class MyItemReader implements ItemReader<MyDTO> {
@Override
public MyDTO read() throws Exception {
MyDTO myDto = null;
/*
your custom code
*/
return myDto;
}
}
但是,根据Sprig批处理结构,更好的方法是
因此,您可以在处理器中处理逻辑,在处理器中,您可以将数据与oracle进行比较
步骤1. MySQL表中的列表-将在spring批处理读取器中处理
步骤2。使用主键ex:id将Oracle的T与List(步骤1)进行比较。 -将在处理器
中处理为了提高性能,如果Oracle数据不是太多,我建议您使用一些缓存。如果oracle数据很大,那么您可以采用简单的方法在处理器中的oracle DB上查找数据