正确使用数据库连接

原创 2005年02月26日 10:35:00

以前做Java数据库查询的时候都会按照许多书上的标准方法先建立一个数据库连接,然后在该连接上调用查询,使用完毕后立刻关闭连接。后来,觉得如果要频繁查询,那么就要不停地建立连接,关闭连接,很浪费资源。通常在这种情况下会使用连接池,这样多个查询就可以共享连接,而建立和关闭连接仅仅在程序开始和结束的时候才执行,大大提高了效率。

前几天做一个数据库查询的时候遇到了一个介于前面两种之间的情况,既需要频繁查询数据,但是又只需要一个连接。我在程序的开始建立一个连接,以后的查询代码如下:

PreparedStatement statement;

try{

  //在此进行数据库操作

  statement.close();

}

catch(Exception e){

  System.err.println(e);

}

每个查询代码都是这样,因为同时不会有多个查询产生,所以我认为这样是正确的。如果在以上代码的“数据库操作”部分不会出错的话,这样的代码的确是正确的,但是如果出现异常,那么就不会执行statement.close()一句,于是在该statement依然占用着数据库连接,导致以后的查询都不能进行。这就需要我们正确地关闭该statement。参考了网上别人的做法之后,我使用了以下的代码:

PreparedStatement statement;

try{

  //在此进行数据库操作 

}

catch(Exception e){

  System.err.println(e);

}

finally {

  try{

    statement.close();

  }

  catch(Exception e1){

    System.err.println(e1);

  }

}

finally里面的部分是始终都要执行的,所以把statement.close()一句放在finally里,而statement.close()本身也会抛出异常,所以又要使用一个try…catch语句。

这样的做法可以保证查询出错时仍然可以正确关闭statement,是比较好的做法。但是如果statement.close()时出错,那仍然会造成以后的查询不能执行,所以,最好的办法还是使用连接池来统一管理连接。

数据库链接出错,请检查数据库路径是否正确--这个问题搞了一下午

因为客户网站要升级,但在升级的时候出现,数据库链接出错,请检查数据库路径是否正确--这个问题搞了一下午,说来我都不相信,我虽然不是高手,虽然很长时间不怎么写程序了,但还是很自信的,但没想到这个问题,具...
  • jjzaihaozhe
  • jjzaihaozhe
  • 2016年05月20日 11:56
  • 4103

IIS7 数据库连接出错!请检查连接数据库的参数及字符串设置是否正确!

这个问题绝对困扰了大部分菜鸟网友,这里结合本人经验给大家归纳为两点,对,只需要两点,网上那么多复杂的办法都是多余的,只需要两点,绝对搞定一切问题。 方法一:开启父路径 在IIS7中ASP默...
  • tangdc88
  • tangdc88
  • 2016年08月19日 16:36
  • 2851

正确及时关闭数据库连接

1.1  概述在JAVAEE后台编码时,时常出现没有正确及时关闭数据库连接资源(Connection,Statement, ResultSet)现象,导致程序运行过程中出现意想不到的错误。本文档首先介...
  • leagoal
  • leagoal
  • 2010年05月31日 10:10
  • 5181

finally被置空导致数据库连接挂死

今天写了几行代码,向数据库插入一篇文章,程序执行该很好,完全按照我的意愿去走,可以写入时都成功写入数据库,该失败时果断失败。开始当我回头再看代码时,突然惊恐万分。这里面隐藏了多么弱智的bug,甚至说是...
  • yichangzxc
  • yichangzxc
  • 2016年05月22日 20:31
  • 618

redmine安装包数据库连接

查找路径:C:\redmine-3.0.1-0\apps\redmine\htdocs\config #window /opt/redmine-3.0.1-0/apps/redmine/htdocs/...
  • wow4464
  • wow4464
  • 2016年04月26日 17:42
  • 962

JDBC- 正确关闭数据库连接

在我们刚开始学习 JDBC时,由于没有使用数据库连接池,我们代码中的每一次连接都需要我们自己来关闭。 不过很多人,都没有正确关闭,包括一些 JDBC的教程。 例如: https:...
  • u013565163
  • u013565163
  • 2017年07月24日 20:03
  • 1665

spring使用properties配置数据库连接信息

maven创建的项目,idea下我将properties文件放在resources下。 我的Spring-mybatis配置: ...
  • sweatOtt
  • sweatOtt
  • 2017年03月28日 18:49
  • 488

jdbc的con、pstmt、rs的非正常关闭顺序探讨

首先大家都知道,正常的关闭顺序都是ResultSet、PreparedStatement、Connection的顺序,这里就不作讨论了 Connection:与特定数据库的连接(会话)。 Prep...
  • wxwzy738
  • wxwzy738
  • 2012年08月03日 10:25
  • 6154

Android Handler正确使用姿势

Android Handler正确使用姿势
  • geanwen
  • geanwen
  • 2017年01月08日 15:14
  • 1601

使用数据库连接

$conn = mysql_pconnect($db_server, $db_user, $db_pwd);//建立mysql连接$my_db = mysql_select_db($db_name,...
  • ottozy
  • ottozy
  • 2010年04月22日 16:56
  • 244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正确使用数据库连接
举报原因:
原因补充:

(最多只允许输入30个字)