我正在尝试将selenium与posgres连接,并显示以下错误
FAILED:selectQuery org.postgresql.util.PSQLException:错误:关系“login”不存在
我的代码如下
包裹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公共类PosgressTest {public static void selectQuery()抛出SQLException,ClassNotFoundException {//加载MySQL JDBC驱动程序
的Class.forName( “org.postgresql.Driver”);
连接连接= null;
connection = DriverManager.getConnection(
“jdbc:postgresql:// localhost:5432 / DIC”,“postgres”,“root”);
Statement st = connection.createStatement();
的System.out.println( “连接”);
String selectquery =“从登录中选择*”;
的System.out.println( “连接1”);
//执行SQL查询并将结果存储在ResultSet中
ResultSet rs = st.executeQuery(selectquery);
// while循环遍历所有数据并打印结果
while(rs.next()){
的System.out.println(rs.getString( “用户名”));
的System.out.println(rs.getString( “密码”));
}
//关闭数据库连接
connection.close()时; }}
我有一个表'在架构里面登录'DICschema' . 我写了这样的选择查询“Select * from DICschema.Login”然后同样的错误
3 回答
您应该将表重命名为“login”,并将模式重命名为“dicschema”,而不是“Login”和“DICschema” . 因为查询会忽略文本的情况 . 查询将如下:“从* dicschema.login中选择*”
如果要保持架构和表名不变(不更改字符大小写),以下查询应该适合您 .
这是因为当编译时的字符串,它会更改为小写,并且可以通过使用反斜杠来避免它 .
似乎postgres用户无法访问DIC架构 . 尝试将前缀(架构)名称附加到查询 .