2015-11-10 87 views
0

在spring批處理程序中,我正在讀取文件中的記錄並與數據庫進行比較,如果數據表示文件中的column1已存在於table1中。在spring批處理中從數據庫獲取數據並將其存儲到內存中

表1相當小而且是靜態的。有沒有辦法從table1中獲取所有數據並將其存儲在內存中的批處理代碼中?現在,對於文件中的每條記錄,選擇查詢將觸及數據庫。

該文件有3列用「|」分隔。

我正在閱讀的文件平均擁有1200萬條記錄,並且大約需要5個小時才能完成這項工作。

回答

1

使用StepExecutionListener.beforeStep(或@BeforeStep)在內存中預加載。
使用此特技數據將在執行步驟之前加載一次。
這也適用於重新啓動步驟。

1

我會使用像標準的Web應用程序緩存。使用Spring的緩存抽象添加服務緩存,並應該照顧它恕我直言。

相關問題