0

MySQL データベースからデータを抽出して消去する方法があります。

プロセスの次のステップは、このデータを Oracle データベースに移動することです。

ただし、MySQL からデータを抽出してクリーニングするプロセス中に、Oracle データベースへの継続的な接続が確立されます。これは必須ではなく、抽出プロセスが極端に遅くなります。

抽出/クリーニングプロセスが完了するまでJavaを待機させてから、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();

}
4

1 に答える 1

1

コードをリファクタリングし、待機したいtryブロックを配置します。try - catch - finally

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


                    }
于 2012-12-14T23:55:16.557 に答える