我有3級嵌套循環,應該執行一個查詢,一個更大的web服務的一部分,但問題是最外層的循環只執行一半的代碼如下:3級嵌套循環查詢不會運行外部循環
PreparedStatement ps = conn.prepareStatement("INSERT INTO malattia (nome, eta, descrizione, sesso, etnia, sintomi) values (?, ?, ?, ?, ?, ?)");
if(sexarra.length == 2){
for(int k=0; k<sexarra.length; k++) {
for(int i=0; i<selec.length; i++){
for(int j=0;j<sintom.length;j++){
ps.setString(1, malattia);
ps.setInt(2, eta);
ps.setString(3, descrizione);
ps.setString(4, sexarra[k]);
ps.setString(5, selec[i]);
ps.setString(6, sintom[j]);
ps.executeUpdate();
}
}
}
}
else {
for(int i=0; i<selec.length; i++){
for(int j=0;j<sintom.length;j++){
ps.setString(1, malattia);
ps.setInt(2, eta);
ps.setString(3, descrizione);
ps.setString(4, sexarra[0]);
ps.setString(5, selec[i]);
ps.setString(6, sintom[j]);
ps.executeUpdate();
}
}
}
ps.close();
//ds.close();
conn.close();
ris = "si";
} catch (SQLException e) {
System.out.println("Errore: " + e.getMessage());
return ris;
}
}
return ris;
}
的問題奠定了在sexarra.lengh=2
,恰恰在最外環這應該重複兩次,但什麼程序儘快拋出異常K = 0與環路的第一部分都做了,我意味着它不執行與K=1
相關的循環。我一直有嵌套循環和preparedstatement
幾天的問題,這是最新的一個,我不知道我做錯了什麼。感謝您的時間和精力。
你能正確地格式化你的代碼,所以我們可以更好地閱讀它嗎?另外,你是否說有拋出異常?在這種情況下,也請將例外作爲問題的一部分。 – momo
而0接受8的答案不是很鼓舞人心。 –
@momo我只知道拋出一個異常,因爲catch(SQLException e)被激活,但我並沒有看到異常,因爲這段代碼在webservice的服務器端運行,只有「ris」被返回給客戶端。 – tutak