当前位置: 技术问答>java相关
请教,请教,,,一定要看!!一定要看!!
来源: 互联网 发布时间:2015-03-16
本文导语: 请教,在编写数据连接池时,如果一个已经分配出去的con连接对象不能正确被收回,如由这个con建立的statement对象没能正确close,我想在后台通过一个线程定时检查,把那些分配出去太久的连接一一收回,我应该怎样...
请教,在编写数据连接池时,如果一个已经分配出去的con连接对象不能正确被收回,如由这个con建立的statement对象没能正确close,我想在后台通过一个线程定时检查,把那些分配出去太久的连接一一收回,我应该怎样做才能让这些连接还可以再用???也就是达到按正常将statement对象close(),使这个连接还可以再分配作用的效果。
|
我理解你的意思,你是问connection可以close,但是createStatement出来的Statement如何close吧?我以前的想法也有这个问题。
我在自定义的类PooledSQL中定义了方法free就涉及到如何关闭connection和statement的问题。结果我把statement也作为这个类的成员变量了。
同样,你也可以这样:
上面的代码是把空闲的连接放在一个Vector中,如果这样,你要把所有用到的连接也放在一个vector中,并且记录它的申请时间。用hashtable吧,一个connection,一个date,一个statement,作为vector的一个元素。
在你分配一个connection时,同时生成它的Statement,取出当前时间一起放入vector中。
要用的话,你有了statement就行了。
然后你在一个线程里,不时检查这个vector,如果有一个connection的申请时间过长,把这个connection和statement都关闭,即可。
如何?你再考虑一下吧。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。