我有一个从MySQL数据库中提取和清除数据的方法。
此过程的下一步是将此数据移至Oracle数据库。
但是,在从MySQL中提取和清理数据的过程中,我与oracle db有一个连续的连接。这不是必要的,并且极大地减慢了提取过程。
如何让java等到extracion / cleaning进程完成然后与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 :(得分:1)
重构代码并将try
阻止放在您想要等待的try - catch - finally
之后。
try{
//block that you need to excecute before
} catch { ... }
// Than your block
try {
OracleController.DataToOracle();
} catch (Exception e)
}