Java SQL"错误:关系"Table_Name"不存在"

Mat*_*att 3 java sql postgresql quoted-identifier

我正在尝试将netbeans连接到我的postgresql数据库.连接似乎有效,因为我只是连接时没有任何错误或异常,getCatalog()等方法也返回正确的答案.

但是当我尝试运行一个简单的SQL语句时,我得到错误"错误:关系"TABLE_NAME"不存在",其中TABLE_NAME是我在数据库中存在的任何一个表.这是我的代码:

    Statement stmt = con.createStatement();

    ResultSet rs;

    String query = "SELECT * FROM clients";

    rs = stmt.executeQuery(query);
Run Code Online (Sandbox Code Playgroud)

我在想netbeans可能找不到表,因为它没有查看默认模式(public),有没有办法在java中设置模式?

编辑:我的连接代码.数据库名称是Cinemax,当我省略语句代码时,我没有错误.

    String url = "jdbc:postgresql://localhost:5432/Cinemax";
    try{

    try {
        Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException cnfe) {
        System.err.println("Couldn't find driver class:");
        cnfe.printStackTrace();
    }

    Connection con = DriverManager.getConnection( url,"postgres","desertrose147");
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 11

我怀疑你使用双引号创建表,例如使用"Clients"大写或小写字符的其他组合,因此表名现在区分大小写.

这句话是什么?

 SELECT table_schema, table_name
 FROM information_schema.tables 
 WHERE lower(table_name) = 'clients'
Run Code Online (Sandbox Code Playgroud)

返回?

如果返回的表名不是小写,则在引用它时必须使用双引号,如下所示:

String query = "SELECT * FROM \"Clients\"";
Run Code Online (Sandbox Code Playgroud)