我正在使用JdbcTemplate.query(sql, args, rowMapper)
方法调用来返回对象列表。在某些情况下,我想跳过一行而不将其添加到我返回的列表中。在这些情况下,我想到了两种解决方案:
我的问题是:当
RowMapper.mapRow
返回null时,JdbcTemplate是否将其添加到列表中?如果没有,我应该抛出SQLException吗? 最佳答案
这是将行添加到结果列表中的代码
public class RowMapperResultSetExtractor<T> implements ResultSetExtractor<List<T>> {
...
public List<T> extractData(ResultSet rs) throws SQLException {
List<T> results = (this.rowsExpected > 0 ? new ArrayList<T>(this.rowsExpected) : new ArrayList<T>());
int rowNum = 0;
while (rs.next()) {
results.add(this.rowMapper.mapRow(rs, rowNum++));
}
return results;
}
...
如我们所见,它确实会添加null。但是,除非其中有bug,否则没有理由RowMapper应该返回null。
关于java - 当RowMapper返回null时,JdbcTemplate会做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17434936/