大家好,我知道这是一个老问题,但今天我很好奇。我们知道connection.close()也会关闭preparedStatement(如果我错了请纠正我)。但是如果我先关闭connection再关闭preparedStatement会怎样呢?
conn.close();
ps.close();
我会得到一个空指针异常吗?
有人说这取决于您的JVM速度。有时,ps.close()会先运行并在conn.close完成其工作之前首先关闭,因此您不会收到空指针异常。
为了测试这一点,我已修改了代码。
conn.close();
Thread.sleep(5000);//I give 5s to conn.close to finish his work. should be enough
ps.close();
但是我没有收到空指针异常。
所以我的问题是如果我先关闭连接再关闭ps,会发生什么。
谢谢大家。
PreparedStatement
,再关闭Connection
(并在关闭PreparedStatement
之前关闭ResultSet
)。 - user207421