如何遍历 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());
}
});
我的 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());
}
});