我对我的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"));
nc1teljy1#
long size = jdbcTemplate.queryForObject(query, Long.class);
kx5bkwkv2#
如果你看一下JdbcOperations中的query javadocs,它会说:
JdbcOperations
query
**弃用。**自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,得到空结果。这往往不是我们想要的行为。
queryForObject
EmptyResultDataAccessException
2条答案
按热度按时间nc1teljy1#
kx5bkwkv2#
如果你看一下
JdbcOperations
中的query
javadocs,它会说:**弃用。**自5.3起,支持查询(String,RowMapper,Object...)
你可以这样使用它:
注意:
queryForObject
抛出EmptyResultDataAccessException
,得到空结果。这往往不是我们想要的行为。