Как получить имя столбца первичного ключа таблицы базы данных из объекта ResultSet или ResultSetMetaData в JAVA? - PullRequest
9 голосов
/ 06 февраля 2010

Я пишу Java-приложение. У меня есть ResultSet. Теперь я хочу узнать имя столбца первичного ключа таблицы.

Возможно ли получить это имя столбца через объект ResultSet или ResultSetMetaData Object или любым другим способом.

Я не нашел способа найти это.

Ответы [ 3 ]

9 голосов
/ 06 февраля 2010

Нет. Вы не получите эту информацию из ResultSet или ResultSetMetadata .

Для этого вы хотите использовать DatabaseMetadata class. Из этого класса проверьте getPrimaryKeys метод, чтобы получить необходимую информацию.

Конечно, чтобы использовать это, вам нужно знать имя таблицы.

3 голосов
/ 25 марта 2011

Хочу добавить, если в таблице есть поле автоинкремента, это должен быть первичный ключ. Итак, ваш код может выглядеть так:

if(metaColumn.isAutoIncrement(i)) {
  primaryKey = metaColumn.getColumnName(i);
  i=nColoumn+1;
}

Используется ResultSetMetaData.

0 голосов
/ 06 февраля 2010

Хороший инструмент, который вы можете использовать для проверки метаданных: dbVisualizer .

Он использует метаданные JDBC для получения определений таблиц и других частей базы данных. Схема и каталог - это столбцы в представлении определения таблицы, поэтому вы можете проверить, какие значения находятся в этих столбцах для вашей любимой базы данных.

dbVisualizer доступен в бесплатной базовой версии.

...