При использовании драйвера JDBC для PostgreSQL в программе Java правильно ли, что я могу выполнять только команды SQL?
Могу ли я выполнять специфичные для psql команды, такие как \conninfo, \l ...?
Подключается ли JDBC напрямую к серверу PostgreSQL, а не к какому-либо клиенту, например psql?
Спасибо.
Кажется, что нет, вы не можете сделать это из Postgres, но, возможно, могли бы сделать это в некоторых других базах данных. Но могут быть доступны функции, которые вы можете вызвать из SQL-запроса, который предоставит вам нужную информацию.
Связанные: stackoverflow.com/questions/46816657/…, stackoverflow.com/questions/12460479/d-failed-in-jdbc-progra м




Драйвер PostgreSQL JDBC вообще не использует psql. Он реализован на Java и даже не использует разделяемую клиентскую библиотеку C libpq.
Невозможно использовать команды psql с JDBC.
Если вы запустите psql с опцией -E, вы увидите команды SQL, которые psql отправляет серверу во время обработки своих команд. Это может дать вам представление о том, как можно эмулировать функциональность psql с помощью JDBC.
Или еще лучше, используйте стандартный JDBC API, чтобы получить большую часть этой информации.
@MarkRotteveel Спасибо. Какие методы в JDBC API для получения этой информации?
@Tim Проверьте документацию интерфейса JDBC java.sql.DatabaseMetaData и драйвера JDBC PostgreSQL для получения информации и поищите эквивалентные функции. Вероятно, не будет 100% эквивалента для всего, но в большинстве случаев будет что-то сопоставимое.
Возможный дубликат: dba.stackexchange.com/questions/58312/…