org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

    技术2022-05-20  55

    org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 0

    springjavadoc上讲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;  }

     

     


    最新回复(0)