java Spring jdbcTemplate从查询中检索数值

m4pnthwp  于 2023-05-27  发布在  Java
关注(0)|答案(2)|浏览(107)

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

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

nc1teljy1#

long size = jdbcTemplate.queryForObject(query, Long.class);
kx5bkwkv

kx5bkwkv2#

如果你看一下JdbcOperations中的query javadocs,它会说:

**弃用。**自5.3起,支持查询(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,得到空结果。这往往不是我们想要的行为。

相关问题