0
현재 HTML 페이지에서 일부 점수를 긁어내어 SQL 데이터베이스에 입력하고 있습니다. Jsoup를 사용하여 ArrayList에 점수를 파싱합니다. 여기에서 ArrayList를 String으로 변환하여 db의 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 예, 일괄 업데이트 사용에 대한 의미를 알고 있습니다. 비록 내가 여기에 그것을 어떻게 구현할 것인지는 조금 확실하지 않지만. 한 행에 대해 일괄 처리에 모든 값을 추가해야하므로 실행되고 다음 행으로 이동합니다. 나는 3 개의 분리 된 for 루프를 가짐으로써 그것을 코딩하는 것에 대해 생각했지만, 결국 addBatch는 executeBatch가 될 것이지만 작동하지 않는 것 같다. 내가 제대로 이해하지 않는 한. –