2013-11-20 42 views
0

我使用Spring Batch的2.1.9.RELEASE如何使用自定義ItemReader

我需要配置一個工作步驟,從MySQL數據庫,並處理讀取數據和寫回MySQL來執行塊處理。我想分塊做。

我認爲使用JdbcCursorItemReader但SQL是一個複雜的。我需要從其他三個表中獲取數據以創建實際的SQL以供讀者使用。

但是,如果我使用customItemReaderJdbcTemplate/NamedParameterJdbcTemplate,我如何確保該步驟處理塊中的數據?我沒有使用JPA/DAO。

非常感謝,

+0

你可以在MySQL中聲明一個SQL視圖嗎? – 2013-11-20 11:27:37

+0

不幸的是,我無法更改或更新此需求的模式。 – Nandan

回答

1

在Spring間歇數據被正常處理爲塊;簡單的方法是在步驟定義中聲明commit-interval;見Configuring a step

定義自定義塊策略的另一種方法是實現您自己的CompletionPolicy

要回答您的問題,請使用Driving Query Based ItemReaders從主表中讀取並構建複雜對象(從其他表中讀取),定義commit-interval並使用標準讀取/處理/寫入步驟模式。

我希望我很清楚,英語不是我的語言。

+0

感謝您的回覆。我設法使用帶有自定義PreparedStatementSetter的JdbcCursorItemReader來完成此操作。我在@PostConstruct中構建了SQL,並在setValues(...)方法中設置了PreparedStatement參數。 – Nandan

相關問題