I need to resolve a bunch of column names to column indexes (so as to use some of the nice ResultSetMetaData
methods). However, the only way that I know how to
Another solution
select * from mytable limit 0;
Then the query dont get any data.
Maybe you could use
DatabaseMetaData databaseMetaData = connection.getMetaData();
databaseMetaData.getColumns(null, null, tableName, "%");
It returns one row for each table column.
In this case you'd use the returned ResultSet
itself, not its ResultSetMetaData
.
One advantage of this approach is, that it doesn't interfere with database locking and transactions.
Assuming you're doing a select * from mytable
you could just add a where
clause that ensures no records will be returned and the ResultSet will be empty?
That way you are still just getting the metadata for the table you are interested in instead of the entire database.