使用Spring JDBC我发现自己总是这样做:
NamedParameterJdbcTemplat njt = ...;
String SQL = "SELECT blah FROM blah_table WHERE column = :condition";
SqlParameterSource params = new MapSqlParameterSource('condition', variableName);
List<Integer> rows = njt.query(SQL, params, Integer.class);
if(rows.size() == 0)
{
//record did not exist, whew avoided index out of bounds exception
}
//do something with rows.get(0);
必须有更好的方法吗?
答案 0 :(得分:0)
您可以使用queryForObject
,例如:
Integer i = null;
try {
i = template.queryForObject(sql, Integer.class, args);
} catch (EmptyResultDataAccessException e) { // zero rows
}
您可以编写自己的包装器方法来处理EmptyResultDataAccessException并使其更清晰。