SQLException: 错误: 语法错误 在 "" 或接近



我想将ma数据库中的表列表获取为字符串。我已经连接了数据库,但是当我尝试使用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语法 - 它是一个psql元命令。您可以通过查询信息架构来执行类似的功能:

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

相关内容

最新更新