在JdbcTemplate,,
queryForInt中
queryForLong,
queryForObject所有这些方法都希望执行的查询将仅返回一行。如果没有行或多于一行,将导致
IncorrectResultSizeDataAccessException。现在正确的方法不是捕获此异常或
EmptyResultDataAccessException,而是确保您使用的查询仅返回一行。如果根本不可能,则使用
querymethod代替。
List<String> strLst = getJdbcTemplate().query(sql,new RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getString(1); }});if ( strLst.isEmpty() ){ return null;}else if ( strLst.size() == 1 ) { // list contains exactly 1 element return strLst.get(0);}else{ // list contains more than 1 elements //your wish, you can either throw the exception or return 1st element. }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)