Как узнать имена столбцов, использующих 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 будет включать все столбцы во всех таблицах во всех схемах в вашей базе данных.

  1. выполнить запрос, получить ResultSet Объект rs
  2. получить ResultSetMetaData Объект: ResultSetMetaData rsd = rs.getMetaData()
  3. получить количество столбцов:

    int columnCount = rsd.getColumnCount();  
    for(int i = 1; i <= columnCount; i++) {  
        System.out.println(rss.getColumnName(i));  
    }
    
Другие вопросы по тегам