【问题标题】:Closing DB connection in closeConnection() within finally block在 finally 块中的 closeConnection() 中关闭数据库连接
【发布时间】:2013-11-26 15:46:15
【问题描述】:

下面是我的代码sn-p

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

【问题讨论】:

标签: java try-finally


【解决方案1】:

您需要执行以下操作:

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

【讨论】:

  • 如果我继续执行上述逻辑,连接将在此处关闭...我不想在此处关闭连接。我的意思是可以将 try 保留为 blnk 像 this public void closeConnection(){ if(connection!=null){ try {} finally{ connection.close();enter code here } } }
  • 你将必须捕捉到SQLException,因为connection.close() 有时会抛出它。没有办法逃脱 connection.closetry 的包装
【解决方案2】:
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();
              }
    }


        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 2013-12-04
    • 2017-06-22
    • 2015-06-27
    • 2012-07-12
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多