2015-05-20 80 views
-2

我的批處理像Step1 Step2和Step3(如果step2成功,應該調用)。如何設計Spring批處理步驟,只執行讀取任務

我需要做一個計數檢查使用SQL如select count(*)from table where condition =?在步驟2中。 計數爲0時失敗;

由於我只有一個閱讀塊和一個進程檢查不是作家。但春天不允許。我應該嘗試使用tasklet嗎? 但是tasklet不是讀者...建議?

+0

作爲春季新批次我發佈了這個問題。它不再需要。 –

回答

0

這裏最佳的解決方案可以 - 避免使用三個步驟 - 就像第一步第二步第三步和。

您只能使用兩個步驟。 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來獲取數據源。

相關問題