SQLException: ERROR: syntax error at or near "\"

SQLException: ERROR: syntax error at or near "\"

我想将 ma 数据库中的表列表获取到 String。我已经连接到数据库,但是当我尝试使用 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;
        }
    }
}

\dt 是无效的 SQL 语法 - 它是 meta-command。您可以通过查询信息架构来执行类似的功能:

ResultSet rs = statement.executeQuery("SELECT table_name FROM information_schema.tables");