2014-10-14 4 views
0

두 번째로 ResultSet이 소모됨에 따라이 메소드가 호출됩니다. 처음 오류가 없습니다. obj[i][j] = rs.getString(1);Resultset exhausted

public static void createTableModel(ResultSet rs) { 

    try { 
     rs.first(); 
     while(rs.next()) { 
      count++; 
     } 
     String [][] obj; 
     obj = new String [count][3]; 
     rs.first(); 
      for (int i=0; i<count; i++) { 
        for (int j=0; j < 3; j++) { 
        if(j == 0) { 
         obj[i][j] = rs.getString(1); 
        } 
        else if(j == 1) { 
         obj[i][j] = Integer.toString(rs.getInt(2)); 
        } 
        else if(j == 2) { 
         obj[i][j] = rs.getString(6); 
        } 
        } 
        rs.next(); 
       } 
     GlobalVariables.table1 = new DefaultTableModel(obj, 
     new String [] { 
      "Name", "Age", "License No" 
     } 
    ); 
} 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

나는 한 번 같은 문제에 직면했다. 그런 다음 다른 데이터 구조를 사용하여 RS의 값을 복사 한 후 나중에 사용합니다. 나는 그것이 왜 일어나는 지 모르겠다. –

+0

데이터를 복사 할 다른 문자열 개체를 만들었습니까? –

+0

'arraylist'에서 쿼리 결과로 반환되는'resultset'의 전체 결과를 저장 한 다음 그 arraylist를 사용했습니다. –

답변

0

에서 오류를 표시 나는

List<ArrayList<String>> result = new ArrayList<>(); 
       do{ 
       ArrayList<String> row = new ArrayList<>(6); 
       int i = 1; 
       while (i <= 6) { 
        row.add(GlobalVariables.data3.getString(i++)); 
       } 
       result.add(row); 
       }while (GlobalVariables.data3.next()); 

그것은 문제를 해결>은 목록에 결과 집합을 변환. 나는 아직도 그것이 오류를 보여준 이유를 알지 못한다.