Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “解决方案”是什么;查询“返回了多个结果集”;_Java_Postgresql_Resultset - Fatal编程技术网

Java “解决方案”是什么;查询“返回了多个结果集”;

Java “解决方案”是什么;查询“返回了多个结果集”;,java,postgresql,resultset,Java,Postgresql,Resultset,我得到一个错误: ERROR [NewsDAO] findAll(): org.postgresql.util.PSQLException: Multiple ResultSets were returned by the query. Im使用postgresql-8.4-703.jdbc4.jar 我的代码如下所示: private static StringBuilder findAllQuery = new StringBuilder(); { findAllQuer

我得到一个错误:

ERROR [NewsDAO] findAll(): org.postgresql.util.PSQLException: Multiple ResultSets were returned by the query.
Im使用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;
}
private static StringBuilder findAllQuery=new StringBuilder();
{
追加(“从新闻中选择*”);
}
公共列表findAll(){
语句stm=null;
结果集rs=null;
列表结果=新建ArrayList();
if(获取连接()){
试一试{
stm=con.createStatement();
rs=stm.executeQuery(findAllQuery.toString());
while(rs.next())
结果:添加(setInObject(rs));
}捕获(例外e){
logger.error(“findAll():”+e);
}最后{
logger.info(“Zamnalem”);
closeConnection();
}
}
返回结果;
}
公共新闻setInObject(结果集rs)引发SQLException{
新闻=新新闻();
news.setId(rs.getInt(“id”);
news.setTitle(rs.getString(“title”);
setDescription(rs.getString(“description”);
//TODO:时间戳
news.setDate(rs.getDate(“日期”));
用户=新用户();
user.setId(rs.getInt(“user_id”);
news.setUser(用户);
news.setActive(rs.getBoolean(“active”);
返回消息;
}
我不知道为什么会出现这个错误。有什么想法吗?

您必须在
findAllQuery.toString()
中找到

编辑


正如JB Nizet所指出的,您应该尝试从语句中删除分号。Postgresql JDBC驱动程序将语句拆分为分号,因此可能会发出两条语句。

您能将代码发布到实际创建/分配的位置吗
findAllQuery
?@TomaszGutkowski:删除查询末尾的分号。Tim Pote您的评论让我找到了问题的解决方案。问题就在这里:私有静态StringBuilder findAllQuery=new StringBuilder();在我的例子中,最后一个分号本身并不是问题所在,而是在分号后面有注释:
和this.that='bliggity blag';--重要评论