Я бы порекомендовал пройтись с отладчиком в Eclipse, чтобы посмотреть, что происходит. Возможно, запрос не возвращает строк.
Одно примечание к дизайну. Этот класс объединяет в себе интерфейс, получение соединения и доступ к базе данных. Лучшим подходом было бы разделить их на разные классы. Протестируйте одну функцию, отложите ее в сторону и позвольте другим классам просто использовать функциональность, которую вы только что реализовали и зарекомендовали себя хорошо.
Когда один класс делает слишком много, вы не представляете, в чем проблема, когда что-то идет не так.
Вы также не закрываете свои ресурсы должным образом. Они должны быть упакованы в отдельные блоки try / catch.
Я бы поместил весь код в один блок finally / catch и закрыл ресурсы в конце.
Я бы передал соединение в объект доступа к данным, который отвечал бы за получение ResultSet и отображение его на объекты или структуры данных.
Я бы переместил все Swing из слоя базы данных. Вы можете использовать его без Swing таким образом (например, если вы переключаетесь на веб-интерфейс).