JDBC SELECT COUNT(*)在HSQLDB上返回空结果集

JDBC SELECT COUNT(*)在HSQLDB上返回空结果集,select,jdbc,count,hsqldb,Select,Jdbc,Count,Hsqldb,我希望总是收到一个SELECT计数上有一行的结果集,但是results.next()总是返回false。这在HSQLDB2.5.1上。 下面的代码打印: 列数:1。类型为INTEGER的第一列C1 无计数结果 在我的SQL控制台中执行相同的SQL语句可以正常工作: C1 104 getResultSet方法适用于execute,但不适用于返回结果集的executeQuery。这就是你需要提到的,在你失去它的那一刻,因为你没有把它分配给任何东西 看到和 getResultSet方法适用于execu

我希望总是收到一个SELECT计数上有一行的结果集,但是results.next()总是返回false。这在HSQLDB2.5.1上。 下面的代码打印:

列数:1。类型为INTEGER的第一列C1

无计数结果

在我的SQL控制台中执行相同的SQL语句可以正常工作:

C1 104
getResultSet
方法适用于
execute
,但不适用于返回结果集的
executeQuery
。这就是你需要提到的,在你失去它的那一刻,因为你没有把它分配给任何东西

看到和


getResultSet
方法适用于
execute
,但不适用于返回结果集的
executeQuery
。这就是你需要提到的,在你失去它的那一刻,因为你没有把它分配给任何东西

看到和


我注意到executeQuery返回了一个结果集。我不确定语句的状态,但想知道该对象是否具有预期的行,并且getResultSet返回的是另一个对象。
ResultSet results=Statement.executeQuery(…)
我注意到executeQuery返回了一个ResultSet。我不确定语句的状态,但想知道该对象是否具有预期的行,并且getResultSet返回的是另一个对象。
ResultSet results=Statement.executeQuery(…)
           statement = connection.createStatement();
            // check if table empty
            statement.executeQuery("SELECT COUNT(*)  FROM mytable");
            ResultSet results = statement.getResultSet();
            System.out.println("number of columns: " + results.getMetaData().getColumnCount() + ". First column " +results.getMetaData().getColumnName(1) + " with type " +results.getMetaData().getColumnTypeName(1) );
            int numberOfRows = 0;
            boolean hasResults = results.next();
            if (hasResults){
                numberOfRows = results.getInt(1);
                System.out.println("Table size " + numberOfRows );
            }else{
                System.out.println("No COUNT results" );
            }
            statement.close();
ResultSet results = statement.executeQuery("SELECT COUNT(*) FROM mytable");