繁体   English   中英

什么是“查询返回多个ResultSet”的解决方案

[英]What is a solution of “Multiple ResultSets were returned by the query”

我收到错误:

ERROR [NewsDAO] findAll(): org.postgresql.util.PSQLException: Multiple ResultSets were returned by the query.

我使用postgresql-8.4-703.jdbc4.jar。

我的代码看起来像:

private static StringBuilder findAllQuery = new StringBuilder();

    {
    findAllQuery.append("SELECT * FROM news;");
}

    public List<News> findAll() {
    Statement stm = null;
    ResultSet rs = null;

    List<News> results = new ArrayList<News>();
    if (obtainConnection()) {
        try {
            stm = con.createStatement();
            rs = stm.executeQuery(findAllQuery.toString());
            while(rs.next())
                results.add(setInObject(rs));
        } catch (Exception e) {
            logger.error("findAll(): " + e);
        } finally {
            logger.info("Zamknalem");
            closeConnection();
        }
    }
    return results;
}
    public News setInObject(ResultSet rs) throws SQLException {
    News news = new News();
    news.setId(rs.getInt("id"));
    news.setTitle(rs.getString("title"));
    news.setDescription(rs.getString("description"));
    //TODO: timestamp
    news.setDate(rs.getDate("date"));
    User user = new User();
    user.setId(rs.getInt("user_id"));
    news.setUser(user);
    news.setActive(rs.getBoolean("active"));
    return news;
}

我不知道为什么会出现这个错误。 有任何想法吗?

您必须在findAllQuery.toString()多个select语句

编辑

正如JB Nizet指出的那样,你应该尝试从语句中删除分号。 Postgresql JDBC驱动程序在分号上拆分语句,因此可能会发出两个语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM