Как я могу получить размер набора записей в Java, когда только тип вперед? - PullRequest
0 голосов
/ 21 октября 2019

Я работаю над BI в Java EE с jsp. Как я могу получить размер набора записей в Java, когда только тип вперед? Мне нужно знать количество записей, прежде чем делать какие-либо циклические записи. Мой набор записей может быть размером в миллионы, и мой код должен быть оптимизирован для скорости. Моя база данных - DB2 (AS400 iseries)

Мой код выглядит так:

        ResultSet rs = null;
        ResultSetMetaData rsmd;
        try {
            rs = statement.executeQuery(command);

            rsmd = rs.getMetaData();
            columnsNumber = rsmd.getColumnCount();
            if (rs.getType() != ResultSet.TYPE_FORWARD_ONLY) {

              rs.last(); rowsNumber = rs.getRow(); rs.beforeFirst();

            } 

        } catch (SQLException e1) {
            e1.printStackTrace();
            System.out.println("Something's wrong with the query...");

        }finally {
            try {
                statement.close();
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

1 Ответ

0 голосов
/ 24 октября 2019

Интерфейс com.ibm.db2.jcc.DB2PreparedStatement имеет метод getEstimateRowCount, который вы можете использовать для этого. Обратите внимание, что это оценка оптимизатора, а не реальное количество строк, возвращаемых с соответствующим набором результатов.

PreparedStatement pst;
...
if (pst instanceof DB2PreparedStatement) 
{
  int row_count = ((DB2PreparedStatement) pst).getEstimateRowCount();
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...