2014-09-16 2 views
3

MySql 데이터베이스에서 데이터를 가져 오는 데 문제가 있습니다. 내가 할java.sql.SQLException : 결과 집합 시작 전

 try { 
     Connection con = datasource.getConnection(); 
     Statement stmt = con.createStatement(); 

     ResultSet rs; 
     rs = stmt.executeQuery("SELECT tittle,date,path " + 
       "FROM announcement "+ 
       "ORDER BY date"); 
     String tittle=rs.getString("tittle"); 
     String date=rs.getString("date"); 
     String text=rs.getString("path"); 


    if (!rs.isBeforeFirst()) 
    { 
     out.println("<p>No data !</p>"); 
    } 
    else 
    {    
     out.println("<table class=\"data\">"); 
     out.println("<tr ><td class=\"sectionheader\"> tittleς</td><td   class=\"sectionheader\">date</td><td class=\"sectionheader\">text</td></tr>"); 

     while (rs.next()) { 
      String row=""; 
      row += "<td><a href=\"\"> "+tittle+ "</td>"; 
      row += "<td>" + date + "</td>"; 
      row +="<td>"+text+"</td>"; 

      row +="</tr>"; 
      out.println(row); 

     } 

오류가 "java.sql.SQLException: Before start of result set" 내가 잘못 뭐하는 거지의 모든 팁입니다 : 내 코드는 다음과 같다?

미리 감사드립니다.

+0

그리고 현재 직면하고있는 문제는 무엇입니까? Btw, 제목이 아니군요. –

+0

제 실수에서 오류가 발생합니다. java.sql.SQLException : 결과 집합 시작 전 – GreatGatsby

+0

이것은 집합의 첫 번째 결과 앞에 가져 오기를 시도했기 때문입니다. Rp의 대답을 참조하십시오. –

답변

7

커서를 통해 ResultSet 객체의 데이터에 액세스합니다. 처음에는 커서가 첫 번째 행 앞을 가리 킵니다.

while(rs.next()) { 
     String tittle=rs.getString("tittle"); 
     .... 

} 

그것에 더,이 경우, 둘 이상의 행을 반환 할 수 쿼리, 당신은 목록의 각 항목이 쿼리 resutls에서 하나 개의 행을 나타내는 수집, List<Map<String, String>>에 결과를 저장할 수 있습니다 맵은 열 이름과 열 값을 보유합니다.

+1

정말 고마워요, 아주 간단했습니다 !!!!! – GreatGatsby