Incorrect column count: expected 1, actual 24

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Eknaij/article/details/100169267

今天使用 Spring JDBC Template 时出现了一个错误:

Incorrect column count: expected 1, actual 24

字面上的意思大概是本应只返回一列,但是实际上返回了24列

需求

根据某个ID返回某一条数据,这数据存在于一个对象中

错误原因分析

最开始的写法是这样的:

return jdbcTemplate.queryForObject(sql, Dealer.class);

后面发现这种写法是错误的,jdbcTemplate.queryForObject(sql, requiredType) 中的 requiredType 的参数只能用基本类型,或者String.class,这样写并不会将查询到的数据映射到实体类中

但是比较奇怪的是,我用Dealer.class编译时也并不会报错= =

解决方法

查看jdbcTemplate时发现,queryForObject有一下方法
在这里插入图片描述
根据需求来看,第二个就可以满足我们的要求,具体写法如下:

        return jdbcTemplate.queryForObject(sql, new Object[]{}, new  BeanPropertyRowMapper<Dealer>(Dealer.class) {
        });

OK 问题解决

猜你喜欢

转载自blog.csdn.net/Eknaij/article/details/100169267
今日推荐