1

使いたい

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)); 
                        }
                }
           }

jdk 6で。しかし、これはサポートされていないと言っています。私に何ができる?

4

2 に答える 2

5

これは、Java SE7の新機能であるtry-with-resourceです。JavaSE6では(最近、来年に寿命が延長されましたが、新しいコードは記述しません):

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イディオムを使用して、反復ビットを除外できます。

于 2012-08-11T17:54:09.167 に答える
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を使用して定型コードを回避します。

于 2012-08-11T17:57:58.243 に答える