如何遍历 ResultSet

How to Iterate through ResultSet

我的 SELECT_QUERY_RETURNS_LIST returns 5 个结果,但是后面的 while 循环只打印 4 个。

jdbcTemplate.query(SELECT_QUERY_RETURNS_LIST, new RowCallbackHandler() {
    public void processRow(ResultSet resultSet) throws SQLException {
        int count = 1;
        while (resultSet.next()) {
            String payload = resultSet.getString(1);
            LOGGER.info("My result {}...",count++);
        }
    }
});

逻辑上是正确的spring jdbc RowCallbackHandler告诉

rs - the ResultSet to process (pre-initialized for the current row)

在第一行本身我们告诉 resultSet.next(),所以它从第二条记录开始,结果打印 4 条记录。以下代码作为我的期望

jdbcTemplate.query(SELECT_QUERY_RETURNS_LIST, new RowCallbackHandler() {
    public void processRow(ResultSet resultSet) throws SQLException {
        int count = 1;
        String payload = resultSet.getString(1);
        LOGGER.info("My result {}...",count++);
        while (resultSet.next()) {
            payload = resultSet.getString(1);
            LOGGER.info("My result {}...",count++);
        }
    }
});

所以请告诉解决方案在 while 循环之前最小化代码。

问题已通过使用 do while 而不是 while 循环得到解决

jdbcTemplate.query(SELECT_QUERY_RETURNS_LIST, new RowCallbackHandler() {
    public void processRow(ResultSet resultSet) throws SQLException {
        int count = 1;
        do {
            payload = resultSet.getString(1);
            LOGGER.info("My result {}...",count++);
        } while (resultSet.next());
    }
});