Как узнать имена столбцов, использующих JDBC?
Учитывая имя таблицы, как узнать имена столбцов, используя JDBC? Я знаю, что это что-то с помощью DatabaseMetaData, примеры приветствуются!
Завершение вопроса:
Я использую HSQLDB и создаю таблицу при запуске сервера, и кажется, что databasemetada не может прочитать имена столбцов.
String tableName = "cities";
DatabaseMetaData metaData = connection.getMetaData();
ResultSet resultSet = metaData.getColumns(null, null, tableName, null);
while(resultSet.next()){
System.out.println(resultSet.getString("COLUMN_NAME"));
}
Объект resultSet.next() становится пустым.
3 ответа
Вы можете попробовать имя таблицы в верхнем регистре:
String tableName = "CITIES";
Вы правы, вы будете использовать объект DatabaseMetaData, а затем использовать его getColumns()
метод. Например:
DatabaseMetaData dbm = connection.getMetaData();
ResultSet columns = meta.getColumns(null, "Schema Name", "Table Name", null);
Обратите внимание, что два средних параметра указывают, для какой схемы и какой таблицы вы хотите столбцы соответственно. (если вы передадите null для этих параметров, ваш ResultSet будет включать все столбцы во всех таблицах во всех схемах в вашей базе данных.
- выполнить запрос, получить
ResultSet
Объект rs - получить
ResultSetMetaData
Объект:ResultSetMetaData rsd = rs.getMetaData()
получить количество столбцов:
int columnCount = rsd.getColumnCount(); for(int i = 1; i <= columnCount; i++) { System.out.println(rss.getColumnName(i)); }