Може би бихте могли да използвате
DatabaseMetaData databaseMetaData = connection.getMetaData();
databaseMetaData.getColumns(null, null, tableName, "%");
Връща един ред за всяка колона на таблицата.
В този случай ще използвате върнатия ResultSet
себе си, а не неговия ResultSetMetaData
.
Едно предимство на този подход е, че той не пречи на заключването на база данни и транзакциите.