为什么PreparedStatement isClosed()会挂起?

时间:2018-10-19 08:43:58

标签: java

我正在调试一些旧的Java代码,看来它挂在这里了

PreparedStatement myStatement;

some code.....

try {
    if (!myStatement.isClosed()) {
        myStatement.close();
    }
}

现在,我无法在Netbeans中直接调试它,但是我可以使用log4j语句编译一个新的jar文件,并且它似乎卡在了if语句中。

在Oracle 11g DB上使用ojdbc14-10.2.0.5.0.jar Oracle驱动程序。

1 个答案:

答案 0 :(得分:0)

我猜您正在终结器中调用close()方法。 尝试使用这种方式:

try {
    myStatement = ...
    ...// execute or fetch...
} finally {
    if(myStatement != null)
        myStatement.close();
}

为已关闭的语句调用close()不会执行任何操作,因此这不是问题。 您随时可以删除isClosed()