0
我目前正在從HTML頁面中取出一些分數,然後將它們輸入到SQL數據庫中。 正在使用Jsoup將分數分析到ArrayList中。從這裏我將ArrayList轉換爲一個字符串,以便將其解析爲數據庫中的VARCHAR字段。雖然我似乎無法解決如何編輯for循環,但我必須一次插入所有值。使用for循環將多個字符串添加到SQL數據庫
這裏是我當前的代碼:
Document doc = Jsoup.connect(URL).timeout(5000).get();
for (Element table : doc.select("table:first-of-type")) //selects first table
{
for (Element row : table.select("tr:gt(0)")) { //selects first table cell
Elements tds = row.select("td");//selects row
List1.add(tds.get(0).text());
List2.add(tds.get(1).text());
List3.add(tds.get(2).text());
}
}
PreparedStatement stmt = conn.prepareStatement("INSERT INTO Scores (Home, Score, Away) VALUES (?,?,?)");
String[] List1str = new String[List1.size()];
List1str = List1.toArray(List1str);
for (String s : List1str) {
stmt.setString(1, s);
stmt.setString(2, "test");
stmt.setString(3, "test");
stmt.executeUpdate();
}
何不乾脆做List1Str.get(指數)?爲什麼循環?另一個問題,java命名約定,標識符名稱以小寫字母開頭。 – kosa
嘗試使用jdbc batchUpdate。 http://stackoverflow.com/questions/14264953/how-is-jdbc-batch-update-helpful – Saurin
@Saurin是的,我明白你的意思是使用批量更新。儘管我有點不確定我會如何在這裏實現它。因爲我需要將所有值添加到批處理中的一行,然後執行,然後移動到下一行。我曾考慮過編寫它有三個單獨的for循環,但它會addBatch然後在最後會執行批處理,但它似乎並沒有工作。除非我沒有正確理解它。 –