2016-06-13 3 views
0
for(int j=0; j<artifactCount; j++) 
{ 
     String first = r2.getString("context");           
     for(int k=0; k<relevantCount; k++) 
     { 
      String second = r4.getString("context"); 
      System.out.println(first + "  " + second); 
      r4.next(); 
     }     
     r2.next(); 
} 

안녕 모두, 자바 루프 중첩 사용하여 결과 세트를 통과. 첫 번째 반복에서는 단일 단어와 그 옆에 따로 분리 된 단어 그룹이 있으므로 결과가 정확합니다. 다음은 올바른 1 차 반복의 샘플 출력입니다.내가 다른 coloumn 항목으로 coloumn의 각 단어와 일치하도록 노력하고 있지만, 처음 내가 루프 중첩 사용하여 결과를 통과하기 위해 노력하고있어

Technology  Products 
Technology  Methodology 
Technology  Project management 
Technology  Risk 
Technology  Management 
Technology  Processes 
Technology  Capitalism 
Technology  Supply chain 
Technology  Skill 
Technology  Production and manufacturing 

그러나 2 차 반복에서 가능한 모든 값을 가진 2 차 값으로 이동하지 않으므로 다음과 같은 오류가 발생합니다. 당신의 도움을 주시면 감사하겠습니다

java.sql.SQLException: After end of result set 
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:4353) 
at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:2137) 
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:2132) 
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:2250) 
at WebArtifactListener$2.run(WebArtifactListener.java:166) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

... 당신은 지원되지 않습니다 r4 여러 번 반복하려는

답변

0

고맙습니다 : 당신이 말할 "다시 시작으로 이동"결코 알 수 있습니다.

먼저 해당 항목을 목록 for 루프 외부에 복사 한 다음 r4 대신 해당 목록을 반복합니다.

List<String> r4contents = new ArrayList<>(); 
for(int k=0; k<relevantCount; k++) { 
    r4contents.add(r4.getString("context")); 
    r4.next(); 
} 

// Then, in the inner loop... 
String second = r4contents.get(k); 
0

당신은 결과 세트를 초기화 코드를 표시하지 않습니다,하지만 당신은 r4 어떻게 든 시작하는 단지 때문에 외부 루프 반복으로 재설정 것을 기대하는 것 같다. 이 경우가 아니므로 r4이 반환 된 행의 끝에 도달하면 더 이상 가져 오기를 시도하면 표시되는 오류가 발생합니다.

사용중인 데이터베이스에 따라 결과 집합을 되감기 가능하게 만들 수도 있지만 커서를 각 외부 루프 반복의 맨 위에있는 첫 번째 행으로 명시 적으로 되돌려 야합니다.

관련 문제