2014-03-18 43 views
2

我想了解在處理JDBC中的連接時try/catch的最佳方法是什麼。處理jdbc連接時try/catch的最佳方法

我個人認爲是。

Connection conn = null; 
try{ 
    conn = getDBConnection(); 
    //Some jdbc code 
} catch(SQLException e) { 
    //... 
} finally { 
    if(conn != null) { 
     try { 
      conn.close(); 
     } catch(SQLException e) { 
      //.... 
     } 
    } 
} 

但我已經看到了一些聰明的傢伙這樣

Connection conn = null; 
try{ 
    conn = getDBConnection(); 
    //Some jdbc code 
    conn.close(); 
    conn = null; 
} catch(SQLException e) { 
    //... 
} finally { 
    if(conn != null) { 
     try { 
      conn.close(); 
     } catch(SQLException e) { 
      //.... 
     } 
    } 
} 

是否有關閉在嘗試連接並設置爲null什麼優勢?

+3

你的方法更好,如果你正在使用java 7,請參閱我的回答try-catch [here](http://stackoverflow.com/questions/17739362/java7-try-with-resources-statement -advantage/17739460#17739460) – morgano

+0

morgano感謝您指出這一點我知道Java 7的酷功能,但我們仍然使用JDK6 –

回答

4

你的聰明人不是那麼聰明。你的方法是要走的路。在finally區塊中僅關閉一次連接,並且沒有理由將連接設置爲null,這就是自動垃圾回收的用途。

+0

我認爲聰明的傢伙擔心的事實是,如果他們不設置'conn'爲空,條件檢查終於可能會成功導致異常,因爲連接已經關閉。謝謝!! –