JDBC数据连接资源释放详解

数据库连接的释放问题,是不少新手最容易忽略的一块。是Connection,属于挺稀缺的资源,用完不关,轻则连接泄露,重则直接拖垮整套系统。

程序运行完,像ResultSetStatement这些数据库交互对象,记得一个个释放掉。Connection 更是必须要关。我的建议是:能晚用就晚用,能早点关就早点关,别犹豫。

关键点来了,释放代码要写在finally里,不然你一旦抛了异常,后续代码跳过,资源就挂在那不动了,挺危险的。像下面这样写,就比较稳:

Connection conn = null;
try {
  conn = DriverManager.getConnection(...);
  // 数据操作逻辑
} catch (SQLException e) {
  e.printStackTrace();
} finally {
  if (conn != null) {
    try {
      conn.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

不止 JDBC,其他语言资源释放也有讲究。像C#资源释放图像释放FMX 图像资源这些也都值得一看,思路差不多,都是防泄露。

如果你平时跟数据库打交道比较多,不妨把释放逻辑封装一下。写个工具类或者模板代码,套着用,效率高还不容易出错。写代码嘛,稳一点总没坏处。

ppt 文件大小:946.5KB