我的批處理像Step1 Step2和Step3(如果step2成功,應該調用)。如何設計Spring批處理步驟,只執行讀取任務
我需要做一個計數檢查使用SQL如select count(*)from table where condition =?在步驟2中。 計數爲0時失敗;
由於我只有一個閱讀塊和一個進程檢查不是作家。但春天不允許。我應該嘗試使用tasklet嗎? 但是tasklet不是讀者...建議?
我的批處理像Step1 Step2和Step3(如果step2成功,應該調用)。如何設計Spring批處理步驟,只執行讀取任務
我需要做一個計數檢查使用SQL如select count(*)from table where condition =?在步驟2中。 計數爲0時失敗;
由於我只有一個閱讀塊和一個進程檢查不是作家。但春天不允許。我應該嘗試使用tasklet嗎? 但是tasklet不是讀者...建議?
這裏最佳的解決方案可以 - 避免使用三個步驟 - 就像第一步第二步第三步和。
您只能使用兩個步驟。 Step1和Step2。
在第1步 - 添加一個監聽器 - 在它上面的監聽器。
在其StepListener - 實現 - 你可以獲取計數,然後你可以決定是否要步驟2開始或不。
在這裏,在AfterStep的評判 - 您可以使用類似的代碼如下得到計數 -
Connection conn = null;
PreparedStatement pstmt= null;
try {
DataSource dataSource = (DataSource) Main.APP_CONTEXT
.getBean("dataSource");
conn = dataSource.getConnection();
pstmt = conn.prepareStatement(" your SQL query to insert ");
pstmtMstr.executeQuery();
} catch (Exception e) {
}finally{
if(pstmt!=null){
pstmt.close();
}if(conn!=null){
conn.close();
}
}
在主類 - 加載應用上下文的靜態變量 - APP_CONTEXT這裏使用它。
如果您不使用基於XML的方法,那麼您可以使用autowire來獲取數據源。
作爲春季新批次我發佈了這個問題。它不再需要。 –