Действительно решения 1 и 2 в основном одинаковы.
Я бы предложил постараться сохранить базу данных и графический интерфейс как можно более раздельными. Перейдите к чему-то еще на стороне варианта 2. Переберите набор результатов и верните список объектов, которые представляют таблицу. Затем на вашей стороне графического интерфейса, есть класс, который принимает этот список и расширяет DefaultTableModel
.