使用Spring的JdbcTemplate对象查询数据库时报以下错误: Incorrect result size: expected 1, actual 0
其实看一下报错提示就知道了,字面意思是:返回的结果有误,预期一个对象,但是没有返回
这个错误一般出现在
Object obj = jt.queryForObject(sql, new RowMapper<Object>() {...},参数);
我们要知道,queryForObject方法返回的是一个对象,但是你查询的时候可能查出来多个结果或者直接没有满足条件的记录,这个时候就有问题了。我们需要一个结果,但是查出来发现没有或有多个结果。所以报错
要解决这个问题就使用以下方法:
List<Object> list = jt.query(sql, new RowMapper<Object>() {...},参数);
这个方法返回一个列表,如果查出来有多条记录自不必说。若是查出来没有结果会返回一个空的List,而不是null