SQLException: ОШИБКА: синтаксическая ошибка в или около "\" - PullRequest
0 голосов
/ 12 июня 2018

Я хочу получить список таблиц в базе данных в строку.Я подключился к базе данных, но когда я пытаюсь использовать функцию Postgres "\ dt", getTables () выдает org.postgresql.util.PSQLException: ERROR: syntax error at or near "\". В чем проблема?Простой обратный слеш сообщается JDK как ошибка (трактует \dt как регулярное выражение).

import java.sql.*;
import java.util.ArrayList;

public class DataConnect {
    Statement statement = null;
    Connection connection = null;
    DataConnect() {
        try {
            Class.forName("org.postgresql.Driver");
            connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "", "");
            statement = connection.createStatement();
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
            System.out.append("Driver is missing");
            end();
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.append("Wrong order");
            end();
        }
    }
    ArrayList<String> getTables() {
        ArrayList tables = new ArrayList();
        try {
            ResultSet rs = statement.executeQuery("\\dt");
            while (rs.next()) {
                String databaseName = rs.getString("Name");
            }
            return tables;
        } catch (Exception e) {
            e.printStackTrace();
            end();
            return null;
        }
    }
}

1 Ответ

0 голосов
/ 12 июня 2018

\dt недопустимый синтаксис SQL - это мета-команда .Вы можете выполнить аналогичные функции, запросив информационную схему:

ResultSet rs = statement.executeQuery("SELECT table_name FROM information_schema.tables");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...