簡體   English   中英

Spring Batch:比較數據庫之間的數據

[英]Spring Batch : Compare Data Between Database

我有兩個數據庫,Oracle和MySQL。 目標是將Oracle中的表中的值保存到MySQL中,要求:MySQL表中不存在數據。

但是我很難理解春季批處理。 在步驟中,它包含itemReader,itemProcessor和itemWriter。 如果我的理解是正確的,那么一個步驟只能有一個itemReader(cmiiw)

我的計划是執行2個步驟:

步驟1.從MySQL表中列出

步驟2.使用主鍵ex:id將Oracle的T與List(步驟1)進行比較。

如果方法正確,我的問題是:如何逐步列出清單? 以及如何將其傳遞到步驟2?

我在這方面需要指導,謝謝

根據您的要求,您可以使用自定義項目閱讀器,例如

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 Batch Reader中處理

步驟2.使用主鍵ex:id將Oracle的T與List(步驟1)進行比較。 -將在處理器中處理

為了提高性能,如果Oracle數據不是太多,我建議您利用一些緩存。 如果oracle數據很大,則可以采用簡單的方法在處理器中的oracle DB上查找數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM