Ten wyjątek com.mysql.jdbc.exceptions.jdbc4.CommunicationsException występuje, jeśli połączenie z bazą danych jest bezczynne przez długi czas. To bezczynne połączenie zwraca wartość true na connection.isClosed(); ale jeśli spróbujemy wykonać instrukcję, spowoduje to uruchomienie tego wyjątku, więc sugeruję skorzystanie z puli bazy danych.