1

使用 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);

应该有更好的方法吧?

4

1 回答 1

0

你可以使用queryForObject,例如:

Integer i = null;
try {
    i = template.queryForObject(sql, Integer.class, args);
} catch (EmptyResultDataAccessException e) { // zero rows
}

您可以编写自己的包装方法来处理 EmptyResultDataAccessException 并使其更清晰。

于 2013-09-05T20:53:51.733 回答