由于没有任何JDBC操作具有超时概念,如果超出超时,是否建议尝试从其他线程关闭过期操作的JDBC连接?
我知道Statement.cancel
方法,但它似乎并不适用于所有情况。此外,我使用的驱动程序不响应中断。
不幸的是,我认为Connection.close
是可以用来防止资源泄漏的最低公分母,以防数据库操作陷入困境。
我知道在使用连接池时,我必须关闭真实连接对象。
答案 0 :(得分:1)
最好的答案是,这取决于您使用的驱动程序。但是从jdbc堆栈的角度来看,应该没问题。
答案 1 :(得分:1)
德比应该没问题: http://db.apache.org/derby/docs/10.8/devguide/cdevconcepts23499.html
根据JDBC规范,您可以与多个线程共享连接和语句
答案 2 :(得分:0)
我将该操作包含在ThreadPoolExecutor
中并超时。它会让你更好地控制正在发生的事情。