Привет всем, я знал, что это старый вопрос, но сегодня он просто любопытен. Как мы знаем, connection.close также закроет подготовленное состояние (поправьте меня, если я ошибаюсь). но что, если я закрою соединение, а затем закрою подготовленное заявление
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();
Но я не получил нулевого указателя.
Итак, мой вопрос: что здесь произошло, если я сначала закрою conn, а затем ps.
Спасибо всем.
PreparedStatement
передConnection
(иResultSet
передPreparedStatement
). - person user207421   schedule 25.02.2020