Как установить время ожидания запроса при PreparedStatement?

#java #jdbc

#java #jdbc

Вопрос:

Есть ли способ установить соединение.prepareStatement() для выдачи ошибки или возврата вместо ожидания блокировки строки?

Я пытаюсь реализовать межпроцессную синхронизацию с использованием подготовленного оператора, который я не фиксирую, поэтому он захватывает блокировку записи в определенной строке. В других процессах он пытается подготовить инструкцию sql, затем зависает, пока исходный процесс завершается. Мне нужно это, чтобы сообщить мне, что он зависает, чтобы я мог остановить функцию и повторить попытку всякий раз, когда она будет перенесена.

Есть идеи? Я уже несколько дней гуглю и, похоже, не могу найти ответа «да» / «нет» на этот вопрос.

Комментарии:

1. Может быть специфичным для базы данных — какую СУБД вы используете?

2. Будет сделано по истечении 8 часов.

Ответ №1:

Я дурак, я понял это вчера и просто забыл…

Чтобы решить эту проблему, выполните

 preparedstatement = con.prepareStatement(query);
preparedstatement.setQueryTimeout(seconds);
  

а затем просто перехватите исключение.

Комментарии:

1. В документации ничего не говорится о @since Java 7, , и никто другой тоже.

2. Я также не смог найти доказательства, но я и не искал так уж усердно. Я удалил его.