2012-08-11 1 views
1

나는 JDK 6에JDK 6은 Statement 및 ResultSet을 지원하지 않습니다. 이것들 대신 무엇을 사용할 수 있습니까?

import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

. 
. 
. 


try (Statement stmt = connection.createStatement()) { 

       try (ResultSet rset = stmt.executeQuery(url)) { 
        while (rset.next()) { 
        System.out.println (rset.getString(1)); 
         } 
       } 
      } 

사용할 그러나이 지원되지 않음을 말한다. 내가 무엇을 할 수 있을지?

시도 -과 - 자원 자바 SE 6에서는 자바 SE 7의 새로운 기능입니다
+0

이 코드는 실제 코드입니까? 컴파일되지 않습니다. 수입 명세서도 게시 할 수 있습니까? – SiB

+0

Statement 또는 ResultSet이라고 생각하지 않습니다. try/catch 블록입니다. {} 잡기 (<예외 유형> e) {} – ksnortum

+0

나는 편집 질문. –

답변

5

(최근 내년으로 수명 연장을했다,하지만 난 그것을 위해 새로운 코드를 작성하지 것이다) :

Statement stmt = connection.createStatement() { 
try { 
    ResultSet rset = stmt.executeQuery(url) 
    try { 
     while (rset.next()) { 
      System.out.println (rset.getString(1)); 
     } 
    } finally { 
     rset.close(); 
    } 
} finally { 
    stmt.close(); 
} 

Execute Around idiom을 사용하면 반복적 인 비트를 제외 할 수 있습니다.

1

Try-with-resources은 Java 7에서 도입 된 기능입니다. 수동으로 리소스를 관리해야합니다.

Statement stmt = null; 
ResultSet rset = null; 
try { 
    stmt = connection.createStatement(); 
    rset = stmt.executeQuery(url); 
    while (rset.next()) { 
     System.out.println(rset.getString(1)); 
    } 
} catch (Exception e) { 
    // In your real code catch expecific exceptions and do something about it. 
} finally { 
    if (rset != null) { 
     try { 
      rset.close(); 
     } catch (Exception e) {} // Same thing 
    } 
    if (stmt != null) { 
     try { 
      stmt.close(); 
     } catch (Exception e) {} // Same thing 
    } 
} 

는 대안 상용구 코드를 방지하기 위해 도서관과 같은 Apache dbutils 또는 더 나은 아직 Spring Framework JDBC를 사용합니다.