JDBC PostgreSQL:无法检索记录

时间:2014-12-03 00:57:25

标签: java jdbc postgresql-9.0

从昨天开始,我就在这个问题上磨牙。我想使用视图检索数据库中的记录,这是我的代码:

  try {
        Class.forName("org.postgresql.Driver").newInstance();
        Connection Conn = DriverManager.getConnection("jdbc:postgresql://{ipaddress}/database?user=postgres&password=password");

        Statement Stmt = Conn.createStatement();
        String sqlCommand = "SELECT num, ip_address, ftp_user, ftp_password, ftp_location, site FROM table_view WHERE site = 'test' ";

        ResultSet RS = Stmt.executeQuery(sqlCommand);

        while (RS.next()) {
            data.add(RS.getInt("num")
                    + "=>" + RS.getString("ip_address")
                    + "=>" + RS.getString("ftp_user") 
                    + "=>" + RS.getString("ftp_password")
                    + "=>" + RS.getString("ftp_location"));
        }
        // Clean up after ourselves
        RS.close();
        Stmt.close();
        Conn.close();
    }
    catch (SQLException E) {
        System.out.println("SQLException: " + E.getMessage());
        System.out.println("SQLState:     " + E.getSQLState());
        System.out.println("VendorError:  " + E.getErrorCode());
    }
    catch(Exception ex)
    {
        System.out.println(ex.getMessage());
    }

我知道上面使用的查询会返回一行,因为我试图在pgAdmin中运行它,但确实如此。但是,当我使用该代码执行此操作时,它不会进入while(RS.next())循环,这是在您提取数据的时候,对吧?

我一直在使用这些代码行,它工作正常。不知怎的,它没有回应这个。该视图由我在连接中使用的用户拥有。此外,我尝试使用视图中使用的查询,选择查询在创建为视图之前,它返回1行但在运行代码时仍然相同,它不返回任何数据。

我做错了吗?或者我缺少的东西?观点是一个问题吗?请帮忙。感谢。

我还尝试更改类似的查询:

String sqlCommand = "SELECT num, ip_address, ftp_user, ftp_password, ftp_location, site FROM table_view WHERE site = 'test' "
    + " UNION "
    + " SELECT 0, '', '', '', '', '' ";

并进入while循环但只接受添加的union选择。我非常确定第一个选择返回一行。

0 个答案:

没有答案