1

我正在尝试将 Selenium 与 Postgres 连接,并显示以下错误:

失败:selectQuery org.postgresql.util.PSQLException:错误:关系“登录”不存在

我的代码如下:

package Posgress;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.testng.annotations.Test;

@Test public class PosgressTest {
  public static void selectQuery() throws SQLException, ClassNotFoundException {
    //Load MySQL JDBC Driver
    Class.forName("org.postgresql.Driver");
    Connection connection =
      DriverManager
        .getConnection("jdbc:postgresql://localhost:5432/DIC","postgres", "root");

    Statement st = connection.createStatement();
    System.out.println("Connection");
    String selectquery = "Select * from Login";
    System.out.println("Connection1");

    // Executing the SQL Query and store the results in ResultSet
    ResultSet rs = st.executeQuery(selectquery);

    // While loop to iterate through all data and print results
    while (rs.next()) {
      System.out.println(rs.getString("username"));
      System.out.println(rs.getString("password"));
    }

    // Closing DB Connection
    connection.close();
  }
}

我有一个表“在模式“DICschema”中登录。我也写了这样的选择查询“从 DICschema.Login 中选择 *”,然后也是同样的错误

在此处输入图像描述

4

3 回答 3

1

您应该将表重命名为“login”,将架构重命名为“dicschema”,而不是“Login”和“DICschema”。因为查询会忽略文本的大小写。查询将类似于:“从 dicschema.login 中选择 *”

于 2017-03-16T09:06:43.960 回答
1

如果你想保持你的模式和表名不变(不改变字符大小写),下面的查询应该适合你。

String selectquery = "SELECT * FROM \"DICschema\".\"Login\" ";

这是因为字符串在编译时会变为小写,可以通过使用反斜杠来避免。

于 2018-11-03T05:48:27.623 回答
0

postgres 用户似乎无法访问 DIC 模式。尝试将前缀(模式)名称附加到查询中。

于 2017-03-16T08:52:12.700 回答