Могу ли я выполнять команды psql в JDBC для PostgreSQL?

При использовании драйвера JDBC для PostgreSQL в программе Java правильно ли, что я могу выполнять только команды SQL?

Могу ли я выполнять специфичные для psql команды, такие как \conninfo, \l ...?

Подключается ли JDBC напрямую к серверу PostgreSQL, а не к какому-либо клиенту, например psql?

Спасибо.

Возможный дубликат: dba.stackexchange.com/questions/58312/…

Tim Biegeleisen 07.08.2018 16:17

Кажется, что нет, вы не можете сделать это из Postgres, но, возможно, могли бы сделать это в некоторых других базах данных. Но могут быть доступны функции, которые вы можете вызвать из SQL-запроса, который предоставит вам нужную информацию.

Tim Biegeleisen 07.08.2018 16:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
483
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Драйвер PostgreSQL JDBC вообще не использует psql. Он реализован на Java и даже не использует разделяемую клиентскую библиотеку C libpq.

Невозможно использовать команды psql с JDBC.

Если вы запустите psql с опцией -E, вы увидите команды SQL, которые psql отправляет серверу во время обработки своих команд. Это может дать вам представление о том, как можно эмулировать функциональность psql с помощью JDBC.

Или еще лучше, используйте стандартный JDBC API, чтобы получить большую часть этой информации.

Mark Rotteveel 08.08.2018 10:37

@MarkRotteveel Спасибо. Какие методы в JDBC API для получения этой информации?

Tim 08.08.2018 15:28

@Tim Проверьте документацию интерфейса JDBC java.sql.DatabaseMetaData и драйвера JDBC PostgreSQL для получения информации и поищите эквивалентные функции. Вероятно, не будет 100% эквивалента для всего, но в большинстве случаев будет что-то сопоставимое.

Mark Rotteveel 08.08.2018 18:09

Другие вопросы по теме