org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 0
spring的javadoc上讲getObject(String, Object[], Class) will return NULL if the result of the query is NUL这里有0行和nullresult的区别0行: select salary from user where 1 = 2null result: select max(salary) from user where 1 = 2 返回就是null0行一定抛出IncorrectResultSizeDataAccessException异常原因如下ResultSetMetaData rsmd = rs.getMetaData();int nrOfColumns = rsmd.getColumnCount();这里返回ResultSet的列数if (nrOfColumns != 1) {throw new IncorrectResultSizeDataAccessException("Expected single column but found " + nrOfColumns, 1, nrOfColumns);}0行,多于1行,就抛异常了以上内容转载自:
http://www.cnblogs.com/ufoer23/archive/2005/11/29/286682.html
具体解决方法:使用如下方法
List<Program> programList = getJdbcTemplate().query(query_sql, args, new RowMapper() { public Object mapRow(ResultSet rs, int num) throws SQLException { Program program = new Program(); ......
return program; } }); if(programList!=null &&programList.size()>0){ program = programList.get(0); }else { program = null; }