当前位置: 首页 > 面试题库 >

用Java关闭数据库连接的合适方法是什么?

尉迟鑫鹏
2023-03-14
问题内容

我试图关闭数据库连接,但是有点困惑

ResultSet rs = null

我是否必须靠近它

rs.close();

要么

DatabaseUtil.closeResultSet(rs);

两者之间有什么区别?


问题答案:

这些方法只能关闭ResultSet。您仍然必须关闭全部StatementConnection实例。我建议这样做finally。就像是,

Connection conn = null;
Statement stmt = null'
ResultSet rs = null;
try {
  conn = getConnection();
  stmt = conn.prepareStatement(sql);
  stmt.setString(1, "Hello"); 
  rs = stmt.executeQuery();
  while (rs.next()) {
    // ...
  }
} catch (SQLException se) {
  se.printStackTrace();
} finally {
  if (rs != null) {
    try {
      rs.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  if (stmt != null) {
    try {
      stmt.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  if (conn != null) {
    try {
      conn.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

如果您使用我的Close实用程序,则finally块可能是,

} finally {
  Close.close(rs, stmt, conn);
}


 类似资料:
  • 我试图关闭数据库连接。但是有了一点困惑,说 我是否必须靠近它 或者 这两者之间有什么区别?

  • 问题内容: 我有些困惑,我从阅读以下内容 你不需要关闭conn连接吗?如果conn.close()没有发生,那实际上是怎么回事? 我有一个正在维护的私有Web应用程序,该应用程序当前无法关闭任何一种形式,但是重要的应用程序真的是stmt,conn还是两者兼而有之? 该站点间歇性地关闭,但是服务器一直在说这是数据库连接问题,我怀疑它没有关闭,但是我不知道该关闭哪个。 问题答案: 使用完之后,你需要通

  • 我想通过pymongo阅读集合,但我得到以下错误: 回溯(最近的调用为last):文件“C://users/gsingh/pycharmprojects/mc/quizQuestionAnswers.py”,第21行,pprint.pprint(posts.find_one())文件“C:\users\gsingh\appdata\local\continuum\anaconda2\lib\sit

  • 刚才发现每次调用完接口都有一堆连接没关掉( 如下图 ): 于是写了一段本地代码无限循环跑发现单独执行一次是可以立刻关闭连接的即便循环跑也一直是 10-30 来回跳我估计就是每次循环好就关闭了问题不大( 代码如下 ): 但是我的 flask 应用中每次请求完连接都在一直没搞懂什么问题( 代码如下 ): 请求指点分析什么问题

  • 这是我目前的代码。我有几个问题: 数据库正忙-错误 SQL错误或缺少数据库 结果集已关闭 如果我想防止这两个错误,我应该使用哪种代码结构?我需要在try块中连接吗?我需要在哪里关闭连接?我需要在哪里关闭准备语句? 直到现在,我还无法通过自己连接不同页面的信息来找到解决方案。

  • 我正在使用sql server 2008。我需要检查是否可以使用服务器名称、端口号、数据库名称、用户名和密码建立连接。 有没有简单的方法可用?