Используйте пул соединений (например, C3PO или DBCP). Ваше приложение берет Соединения из пула, выполняет оператор (ы) и помещает Соединение обратно в пул. Пул можно настроить для проверки соединений JDBC. Например, если они устарели, их можно автоматически восстановить в пуле.
Если ваше приложение получает соединение из пула, оно будет действительным соединением. Позвольте пулу обрабатывать управление действительными / недействительными / устаревшими Соединениями JDBC.