【发布时间】:2011-05-11 12:42:21
【问题描述】:
假设有一个 jdbc 代码运行一些 CRUD 操作。现在,在特定情况下,恰好发生了行锁,并且会话阻塞了其他数据库会话。
在这种情况下,如果阻塞会话在数据库端被终止,相应的 java Connection 对象会发生什么?给出异常后该对象会变为空吗?如果稍后在代码中使用该连接对象而不进行检查,会出现什么行为?
我知道作为最佳实践,我们应该从池中获取连接并在完成后将其关闭,但是有相当多的遗留代码以其他方式编写,需要一些时间来清理。
如果上述连接是通过数据源、管理连接池而不是通过普通的 jdbc 连接创建的,答案会是什么?
【问题讨论】:
-
这是哪个数据库服务器?并不是说它很重要,而是您使用的 JDBC 驱动程序可能更重要。
-
数据库服务器是通过jdbc瘦驱动使用的Oracle 10g。
标签: java database jdbc connection connection-pooling