2012-12-14 22 views
0

我有一種方法可以從MySQL數據庫中提取和清除數據。讓Java等到上一次Try完成

該過程的下一步是將此數據移至Oracle數據庫。

但是,在從MySQL提取和清除數據的過程中,我有一個連接到oracle db的連接。這並不是必需的,並且極大地減緩了提取過程。

如何讓java等待extracion /清理過程完成,然後建立與Oracle的連接?

這是我的代碼:

public void ConvertFiles() { 

    try { 

     connectToDB(); 

     RawFile tempFile = new RawFile(super.mFileType); 
     try { 
      ArrayList<String> values = new ArrayList<String>(); 

      try { 
       Statement stmt = conn.createStatement(); 
       ResultSet result = stmt.executeQuery("SELECT * FROM coffeedata"); 
       int ii = 0; 
       while (result.next()) { 
        ii++; 
        System.out.print("Reading Row:" + ii + "/" + 41429 + "\n"); 
        mStore = (result.getString(1)); 
        mCategory = (result.getString(2)); 
        mName = (result.getString(3)); 

        // Add columns 2007 Q1 - Q4 t/m 2009 Q1 - Q2 to ArrayList 


        for (int i = 4; i < 14; i++) { 
         values.add("" + result.getInt(i)); 

        } 
        tempFile.addData(new SQLData(mCategory, mName, values, mStore)); 

        try { 
         OracleController.DataToOracle(); 

        } catch (Exception e) { 
         System.out.println(e.getMessage()); 

        } 
       } 

       tempFile.CleanCategory(); 
       mRawFiles.add(tempFile); 

      } catch (Exception e) { 
       System.out.println(e.getMessage()); 
       closeDBConnection(); 

      } 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
      //return values; 
      //System.out.println(values); 


     } 
    } catch (Exception e) { 
     System.out.println(e.getMessage()); 
    } 

爲了澄清:我不想讓這個嘗試等到前一個完成:

try { 
    OracleController.DataToOracle(); 

} 
+0

發佈您的代碼。 –

+0

您需要連接以從數據庫中「提取並清除」數據 – Bohemian

+0

是的,但問題在於,當它不是必需時,我保持與Oracle數據庫的連接。在Extracion /清潔過程完成後,我只需要連接 – Forza

回答

1

重構代碼,把你的trytry - catch - finally後你想等待。

try{ 
    //block that you need to excecute before 
} catch { ... } 
// Than your block 
try { 
    OracleController.DataToOracle(); 
} catch (Exception e) 


        } 
+0

嘗試永遠不會到達。沒有可執行的位置 – Forza

+0

Nvm,解決了它:) thx男人! – Forza