こんにちは、私はそれが古い質問であることを知っていましたが、今日はただ興味があります。私たちが知っているように、connection.closeはpreparedStatementも閉じます(間違っている場合は修正してください)。しかし、接続を閉じてからpreparedStatementを閉じるとどうなりますか
conn.close();
ps.close();
nullpointer例外が発生しますか?
誰かがあなたのjvmの速度に依存すると言っていました。時にはps.close()が先に実行され、conn.closeが彼の仕事を終える前に最初に閉じて、nullpointerを取得しないことがあります。
それをテストするために、私はコードを変更しました
conn.close();
Thread.sleep(5000);//I give 5s to conn.close to finish his work. should be enough
ps.close();
しかし、nullpointerを取得できませんでした。
だから私の質問は、私が最初にconnを閉じ、次にpsを閉じた場合にここで何が起こったのかということです。
皆さんありがとう。