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
。通常这不是我们想要的行为。
我对我的 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
。通常这不是我们想要的行为。