您的位置:首页 > 编程语言 > Java开发

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

2011-04-15 21:32 477 查看
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 = 2

null result: select max(salary) from user where 1 = 2 返回就是null

0行一定抛出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行,就抛异常了

以上内容转载自:

/article/5200173.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;

}
本文出自 “坚持下去” 博客,请务必保留此出处http://zuoanlove.blog.51cto.com/1422941/1053694
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐