gpt4 book ai didi

java - RowMapper返回null时JdbcTemplate做了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:09 25 4
gpt4 key购买 nike

我正在使用 JdbcTemplate.query(sql, args, rowMapper) 方法调用来返回对象列表。在某些情况下,我想跳过一行而不是将其添加到我返回的列表中。在这些情况下,我想到了两种解决方案:

  1. 让 RowMapper 返回 null。
  2. 让 RowMapper 抛出异常(我知道 SQLExceptions 已被处理,所以这是一种可能性)。

我的问题是:当 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;
}
...

正如我们所见,它真的会添加空值。然而,除非其中存在错误,否则 RowMapper 没有理由返回 null。

关于java - RowMapper返回null时JdbcTemplate做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17434936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com