2014년 5월 25일 일요일

(자바JDK1.7, 자바1.7 신기능,추가기능)try-with-resources 구문,[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]

(자바JDK1.7, 자바1.7 신기능,추가기능)try-with-resources 구문,
[자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]



Automatic Resource Management

:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office"  />
 
 
자바1.7, JDK1.7에서 소개된 try-with-resources 구문은 하나 또는 그 이상의 리소스를 가지는 try 구문이다여기서 리소스란 사용 후 자동으로 close되어야 할 자원들인데
대표적인 것이 DB Connection과 관련된 자원파일이나 네트웍 스트림과 관련된 자원들 일 것 이다이런 리소스들이 try-with-resources 구문을 사용하면 구문의 끝에서 확실하게 자동으로
닫아 준다는 것이다.(물론 그런 리소스는 java.lang.AutoCloseable을 구현해야 한다아래 BufferedReader 역시 구현했다.)
 
 
다음 예문은 파일의 한 라인을 읽는 예문인데 try 정의 라인에서 BufferedReader를 정의하고 정의된 br 객체는 구문이 끝날 때 자동으로 close 되는 것이다.
 
java.lang.AutoCloseable을 구현한 것 들이 대상이다.
 
static String readFirstLineFromFile(String path) throws IOException {
  try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    return br.readLine();
  }
}
 
 
물론 jdk1.7 이전에는 다음과 같이 try, finally를 이용하여 주로 처리했다.
 
static String readFirstLineFromFileWithFinallyBlock(String path) throws IOException {
  BufferedReader br = new BufferedReader(new FileReader(path));
  try {
    return br.readLine();
  } finally {
    if (br != null) br.close();
  }
}
 
 
예를 하나 더 보자아래 구문에서는  java.sql.Statement 객체를 자동으로 닫아준다.
 
public static void viewTable(Connection con) throws SQLException {
 
    String query = "select empno, ename from emp";
 
    try (Statement stmt = con.createStatement()) {
 
      ResultSet rs = stmt.executeQuery(query);
 
      while (rs.next()) {
        String empno = rs.getString("empno");
        String ename = rs.getString("ename");
      }
 
    } catch (SQLException e) {
        e.printStackTrace();
    }

댓글 없음:

댓글 쓰기