Как получить имя целевой таблицы и столбец столбца внешнего ключа с простым JDBC - PullRequest
2 голосов
/ 25 февраля 2010

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

Есть ли способ получить такую ​​информацию о внешних ключах напрямую через JDBC или мне приходится прибегать к запросам метаданных к конкретной базе данных, в данном случае HSQLDB.

Если мне нужно использовать запросы к метаданным, относящимся к базе данных, то какие таблицы метаданных внутреннего HSQLDB содержат эту информацию?

Ответы [ 2 ]

5 голосов
/ 25 февраля 2010

Ваша лучшая ставка - Connection#getMetaData(), которая возвращает DatabaseMetaData всеми способами для получения информации обо всех таблицах , столбцах, первичные ключи , внешние ключи и так далее. Однако вы зависите от реализации JDBC (читай: производитель / версия драйвера JDBC), полностью ли это поддерживается.

1 голос
/ 25 февраля 2010

JDBC поддерживает это. Проверьте DatabaseMetaData.getCrossReference класс. Другие методы поддержки DatabaseMetdata для запроса схемы, каталога, таблиц, столбцов и т. Д. Имейте в виду, что некоторые базы данных требуют дополнительных параметров в вашем URL для включения метаданных (например, Oracle) для оптимизации вызовов. Не знаю, требует ли HQLSB этого.

...