解惑

解己之惑,解人之惑

标签:连接池

完成轮子的第三个部分-连接池

其实也不是连接池,而且我还是不太清楚Connection的close应该干嘛,简单的实现了DataSource,并使用动态代理实现Connection的复用,Connection使用几次以后或者使用一段时间以后再真正的关闭。

代码如下:
阅读全文

连接池中的Connection.close()应该干什么?

本来想写一个简单的数据库连接池的,上网搜索了一下别人的实现,也看了一些开源的实现,感觉有些问题,那就是连接池中的Connection.close()应该干什么?按照API的说明,这个方法应该释放数据库和JDBC的资源,但是这样的话,连接池中的连接就要重新建立,似乎没有起到pool应有的作用,如果代码不进行close操作,交给其它的地方释放又不太安全。难到说我原来的代码习惯都是错的?取得一个Connection后,使用完不需要close,而是把相关的ResultSet和Statement关闭就行了?
找了很多文章,都没有提到这个问题。
目前来看,我不用关注那么多了,可能的解决方法就是让框架来执行数据库操作,执行完以后commit,关掉ResultSet和Statement,Connection保持连接,一定时间以后再close。

© 2024 解惑

本主题由Anders Noren提供向上 ↑