2013-11-26 119 views
0

下面是我的代码片段关闭数据库连接()内finally块

public void closeConnection(){ 
    if(connection!=null){ 
    try { 
     connection.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 

}

我想结束在finally块这种方法可以在任何一个请帮助与连接.. 。

我的要求是连接应该在这里开了......但connection.close()必须在finally块......是这样的:

public void closeConnection() { 
    if(connection!=null){ 
    try {} 
    finally { 
     connection.close(); 
    }  
} 
+0

也许你要考虑新的尝试与 - 的ressource在Java 7?例如:http://java.dzone.com/articles/java-7-new-try-resources – LostAvatar

回答

1
You can do something like:- 

public void closeConnection() { 
    try{ 
    if(connection==null) 
    { 
    //Code to create connection and use DB operations 
    } 
} 
    catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    finally{ 
      if(connection!=null){ 
       try { 
       connection.close(); 
       } catch (SQLException e) { 
       e.printStackTrace(); 
       } 
    } 


     } 
2

你需要做的是这样的:

try { 
    //do you db logic here.   
} catch (SQLException e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     connection.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 
+0

如果我继续并执行上述逻辑,连接将在此处关闭......我不想在此关闭连接。我的观点是,把这个尝试像这样公开就好了closeConnection()if(connection!= null){ try {} finally { connection.close();'在这里输入代码' } } } – user3037135

+0

您将**拥有**来捕获'SQLException',因为connection.close()有时会抛出它。 'try'中没有办法转义'wrap.close' –