Spring jdbcTemplate 从查询中检索数值

Spring jdbcTemplate retrieve numeric values from query

我对我的 jdbcTemplate 有这个查询,我只想从数据库中获取 long 值,这里应该修复什么?

String query = "SELECT size from users where name = ? AND type = ?";
long size = jdbcTemplate.query(query, new Object[]{id, type}, (rs, rowNum) -> 
rs.getLong("size"));
long size = jdbcTemplate.queryForObject(query, Long.class);

如果您查看 JdbcOperations 中的 query javadoc,它指出:

Deprecated. as of 5.3, in favor of query(String, RowMapper, Object...)

所以你可以这样使用它:

List<Long> sizeResults = jdbcTemplate.query(query, (rs, rowNum) ->
        rs.getLong("size"), id, type);
if (sizeResults.isEmpty()){
    System.out.println("Result not found!");
} else {
    System.out.println("Result found!");
}

注意: queryForObject 为空结果抛出 EmptyResultDataAccessException。通常这不是我们想要的行为。