Java 处理jdbc连接时尝试/捕获的最佳方法

Java 处理jdbc连接时尝试/捕获的最佳方法,java,jdbc,Java,Jdbc,我试图找出在处理JDBC中的连接时,使用try/catch的最佳方法是什么 我个人的看法是 Connection conn = null; try{ conn = getDBConnection(); //Some jdbc code } catch(SQLException e) { //... } finally { if(conn != null) { try { conn.close(); } ca

我试图找出在处理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) {
            //....
        }
    }
}

在try中关闭连接并将其设置为null有什么好处吗

你的聪明人没那么聪明。你的方法是正确的。在
finally
块中只关闭一次连接,并且没有理由将连接设置为
null
,这就是自动垃圾收集的目的。

如果使用java 7,请参阅我在try-catch morgano上的回答谢谢你指出这一点我知道Java 7很酷的功能,但是我们仍然在使用JDK6。我想聪明的人担心的是,如果他们不将
conn
设置为null,finally中的条件检查可能会成功,从而导致异常,因为连接已经关闭。谢谢