日期:2014-05-20  浏览次数:20778 次

大家都是如何处理数据库连接(关闭资源)
昨天碰到一个数据库方面的异常:
  创建连接异常
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
127.0.0.1:1521:xe

网上找了些资料,都说数据库线程并发数目已经到配置值的最大值,而且没有关闭资源,所以才抛出这个异常。

我自己看了看代码,虽然没找到问题,但是发现自己的代码确实写得很不好,太不规范了。如果用jdbc来实现dao层来持久化数据,怎么样关闭连接?如果用数据库连接池,有怎么关闭连接?用Hibernate呢?

------解决方案--------------------
JDBC: Connection.close();
Hibernate: Session.close();

c3p0口碑不错,Hibernate默认就是使用的c3p0的连接池。

------解决方案--------------------
呵呵,如果是网站的话,放到拦截器里去关.当然这个还是要看情况的.既然用了c3p0,那很多就很方便了.
如果你的网站没有事物的话,那就执行一次关一次呗.