Kanske kan du använda
DatabaseMetaData databaseMetaData = connection.getMetaData();
databaseMetaData.getColumns(null, null, tableName, "%");
Den returnerar en rad för varje tabellkolumn.
I det här fallet skulle du använda den returnerade ResultSet
sig själv, inte dess ResultSetMetaData
.
En fördel med detta tillvägagångssätt är att det inte stör databaslåsning och transaktioner.